PHP: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Ошибка открытия excel файла в office 2010 в w7 и w8.)
(1. Вылезает ошибка:)
Строка 54: Строка 54:
 
=====1. Вылезает ошибка:=====
 
=====1. Вылезает ошибка:=====
 
<pre>Deprecated: Call-time pass-by-reference has been deprecated in /usr/share/pear/Spreadsheet/Excel/Writer/Worksheet.php on line 2490</pre>
 
<pre>Deprecated: Call-time pass-by-reference has been deprecated in /usr/share/pear/Spreadsheet/Excel/Writer/Worksheet.php on line 2490</pre>
Редактируем файл '''Spreadsheet/Excel/Writer/Worksheet.php''' строка 2489<br />
+
Редактируем файл '''/usr/share/php/Spreadsheet/Excel/Writer/Worksheet.php''' строка 2489<br />
 
Было
 
Было
 
<pre>$string=$header.$data;
 
<pre>$string=$header.$data;
Строка 61: Строка 61:
 
Взято [http://pear.php.net/bugs/bug.php?id=19773&edit=12&patch=fix-call-time_pass-by-reference&revision=1359123571 тут]<br />
 
Взято [http://pear.php.net/bugs/bug.php?id=19773&edit=12&patch=fix-call-time_pass-by-reference&revision=1359123571 тут]<br />
 
<br />
 
<br />
 +
 
=====Ошибка открытия excel файла в office 2010 в w7 и w8'''.=====
 
=====Ошибка открытия excel файла в office 2010 в w7 и w8'''.=====
 
Редактируем файл '''/usr/share/php/OLE/PPS/Root.php''' строка 623 :<br />
 
Редактируем файл '''/usr/share/php/OLE/PPS/Root.php''' строка 623 :<br />

Версия 11:21, 12 мая 2014

Буду записывать проблемы, с которыми я столкнулся и их решение

Настройки, которые я сделал при переходе на php 5.3

/etc/php.ini

log_errors = on
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
display_errors = on
post_max_size = 200M
upload_max_filesize = 200M
; Если не указать тайм зону, то будут сыпаться ошибки.
date.timezone = Europe/Moscow
; заремарить следующую строку, иначе письма будут терять поле FROM
;mail.add_x_header = On

FAQ

Вопрос

Есть страничка на которой отмечается около 120 checkbox'ов. С помощью функции

print_r($_REQUEST);

просматриваю их состояние после ввода. Так вот вводится только 100 или 101 отмеченный чекбокс, остальные пропадают, те их нет в выводе, хотя тоже отмечены.

Ответ

Отредактируйте строки в конфигурационном файле /etc/php.d/Z98_suhosin.ini

suhosin.request.max_vars 500
suhosin.post.max_vars 500

Message: Function set_magic_quotes_runtime() is deprecated

При переносе сервера, появилась ошибка Message: Function set_magic_quotes_runtime() is deprecated

Решение

Эта функция считается устаревшей в 5.3, а в 6.0 ее вообще не будет. Один из вариантов. Поставить перед функцией set_magic_quotes_runtime() знак @.

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function

При переносе сервера, появилась ошибка При переносе сервера, появилась ошибка Message: Function set_magic_quotes_runtime() is deprecated ...

Решение

В php.ini прописать

date.timezone = Europe/Moscow

Как при подключении к MSSQL базе с кодировкой CP1251, а выводить данные в UTF8?

При выводе данных из таблиц MSSQL все русские буквы стали знаками вопроса.

Решение

В php.ini установить переменную

mssql.charset = "UTF8"

При выводе поля типа datetime, оно выводится уже форматированным

При выводе поля типа datetime, оно выводится уже форматированным, а надо как есть.

Решение

В php.ini установить переменную

mssql.datetimeconvert = Off

Знакомство с PEAR:: Spreadsheet_Excel_Writer (установка и устранение ошибок)

Установка

#apt-get install php-pear
# pear install -f OLE 
# pear install -f Spreadsheet_Excel_Writer

Документация

  1. Создание таблиц Excel средствами PHP
  2. Документация

Устранение ошибок

1. Вылезает ошибка:
Deprecated: Call-time pass-by-reference has been deprecated in /usr/share/pear/Spreadsheet/Excel/Writer/Worksheet.php on line 2490

Редактируем файл /usr/share/php/Spreadsheet/Excel/Writer/Worksheet.php строка 2489
Было

$string=$header.$data;
$this->_append(&$string, true);

Стало

$this->_append($header.$data, true);

Взято тут

Ошибка открытия excel файла в office 2010 в w7 и w8.

Редактируем файл /usr/share/php/OLE/PPS/Root.php строка 623 :

Было

fwrite($FILE, pack("V", 1));

Стало

fwrite($FILE, pack("V", $num_sb_blocks));

Взято тут