Архив

< Март 2024 >
П В С Ч П С В
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Вход на сайт

Тэги

Блог Alex Delphine

Здесь я оставляю разные свои мысли.
Теги >> PHP Warning
4 Окт. 2009

На одном из подведомственных мне сайто установлена CMS Bitrix. Установлена достаточно давно, но только на днях решил исправить ошибку, которая постоянно появляется.

PHP Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /bitrix/modules/main/tools.php on line 2146

Вот такая вот длинаая ошибка :)

Так вот, суть в том, что передача аргументов по ссылке во время вызова функции была объявлена устаревшей.


20 Сен. 2009

Используемые версии:

PHP: 5.2.0
Joomla 1.5.14

PHPПопробывал тут на днях воспользоваться поиском на сайте. И увидел ошибку:

Warning: Invalid argument supplied for foreach() in /components/com_content/helpers/route.php on line 106

Вот уж никак не ожидал. Ошибка повторяется несколько раз на странице поиска. Можно конечно отключить показ ошибок. Но, не люблю когда в коде есть ошибке. Стараюсь все исправить.


19 Сен. 2009

PHPПосле обновления скрипта подсветки синтаксиса кода GeSHi до версии 1.0.8.4, после вставки кода PHP появляетя ошибка:

PHP Warning:  preg_match() [function.preg-match]: Compilation failed: unrecognized character after (?< at offset 3 in /libraries/geshi/geshi.php on line 2132

Ошибка происходит в коде:

Код PHP
if(!GESHI_PHP_PRE_433 && //Needs proper rewrite to work with PHP >=4.3.0; 4.3.3 is guaranteed to work.
 preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {

Решение. В файле /libraries/geshi/geshi/php.php находим код:

Код PHP
 4 => "/(?<start><\\?(?>php\b)?)(?:".
 "(?>[^\"'?\\/<]+)|".
 "\\?(?!>)|".
 "(?>'(?>[^'\\\\]|\\\'|\\\\\\\|\\\\)*')|".
 "(?>\"(?>[^\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
 "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
 "\\/\\/(?>.*?$)|".
 "\\/(?=[^*\\/])|".
 "<(?!<<)|".
 "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>".
 ")*(?<end>\\?>|\Z)/sm",
 5 => "/(?<start><%)(?:".
 "(?>[^\"'%\\/<]+)|".
 "%(?!>)|".
 "(?>'(?>[^'\\\\]|\\\'|\\\\\\\|\\\\)*')|".
 "(?>\"(?>[^\\\"\\\\]|\\\\\"|\\\\\\\\|\\\\)*\")|".
 "(?>\\/\\*(?>[^\\*]|(?!\\*\\/)\\*)*\\*\\/)|".
 "\\/\\/(?>.*?$)|".
 "\\/(?=[^*\\/])|".
 "<(?!<<)|".
 "<<<(?<phpdoc>\w+)\s.*?\s\k<phpdoc>".
 ")*(?<end>%>)/sm",

и меняем на код:

Код PHP
4 => "/(<\?(?:php)?)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(\?>|\Z)/sm",
5 => "/(<%)(?:'(?:[^'\\\\]|\\\\.)*?'|\"(?:[^\"\\\\]|\\\\.)*?\"|\/\*(?!\*\/).*?\*\/|.)*?(%>|\Z)/sm",