Просмотр темы
Function eregi() is deprecated
|
|
yury |
Опубликовано 02.01.2013 20:30
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
в аддоне доски объявлений есть такая строка if (!preg_match("/adm/", $_SERVER['REQUEST_URI']) && ($p_data['panel_display'] == 1 || eregi((SEO == "1" ? BRD_INDEX_FILE_HTML : BRD_INDEX_FILE_PHP)."$", FUSION_REQUEST.(FUSION_QUERY ? "?".FUSION_QUERY : "")))) вызывает ошибку Function eregi() is deprecated на что заменить ереги в таком случае, чтобы все работало корректно, т.к на серваке php 5.3? Изменил(а) yury, 02.01.2013 20:51 |
|
|
Truth_Explorer |
Опубликовано 02.01.2013 20:41
|
![]() Администратор ![]() Журналисты ![]() Персонал сайта ![]() Сообщений: 266 Зарегистрирован: 17.11.2010 13:01 |
"ereg", которой напичкан php-Fusion, в PHP 5.3.0 считается старой, медлительной и не нужной - поэтому ее и убрали. Решение 1. Изменяем функцию "ereg" на "preg_match": Fix `ereg is deprecated` errors in PHP 5.3 If you upgraded to PHP 5.3, chances are high you’re going to run into a few warnings or deprecated function messages. An example is the ereg family of functions, which are gone for good, as they were slower and felt less familiar than the alternative Perl-compatible preg family. To migrate ereg(): becomes Notice that I wrapped the pattern (\.([^\.]*$)) around / /, which are RegExp delimiters. If you find yourself escaping / too much (for an URL for example), you might want to use the # delimiter instead. To migrate ereg_replace(): becomes Again, I just added delimiters to the pattern. If you are using eregi functions (which are the case-insensitive version of ereg), you’ll notice there’re no equivalent pregi functions. This is because this functionality is handled by RegExp modifiers. Basically, to make the pattern match characters in a case-insensitive way, append i after the delimiter: becomes Решение 2 (необходим доступ к php.ini) ; overload(replace) single byte functions by mbstring functions. ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), ; etc. Possible values are 0,1,2,4 or combination of them. ; For example, 7 for overload everything. ; 0: No overload ; 1: Overload mail() function ; 2: Overload str*() functions ; 4: Overload ereg*() functions ; http://php.net/mbstring.func-overload ; mbstring.func_overload = 0 0 - Оставить все без изменений. 1-4 Включить одну из функций. 7 - Включить сразу все функции. Слово "включить" тут не совсем корректно. Речь идет об включении поддерживания старых функций, при этом новые будут отключены. Если у Вас нету никаких ошибок, то лучше их не включать. Все это пишется в нижней строке, притом, главное, не забудьте убрать символ ";" в начале строки. Т.е. если Вы хотите, что бы были включены все функции, то нижняя строка примет вид: Цитата mbstring.func_overload = 7 |
|
|
yury |
Опубликовано 02.01.2013 20:51
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
я читал это тоже, но не понял как применить в моем конкретном случае( |
|
|
Polarfox |
Опубликовано 02.01.2013 20:55
|
![]() Администратор ![]() Разработчики ![]() Группа поддержки ![]() Сообщений: 3387 Зарегистрирован: 20.08.2010 14:03 |
Вообще непонятно зачем смесь двух стилей?
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
|
|
|
yury |
Опубликовано 02.01.2013 21:00
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
я не знаю. такой был компонент от спайкера |
|
|
yury |
Опубликовано 02.01.2013 23:05
|
![]() Супер Администратор ![]() Сообщений: 1051 Зарегистрирован: 26.07.2010 13:12 |
сделал так if (!preg_match("/adm/", $_SERVER['REQUEST_URI']) && ($p_data['panel_display'] == 1 || !preg_match((SEO == "/1/i" ? BRD_INDEX_FILE_HTML : BRD_INDEX_FILE_PHP)."/$/i", FUSION_REQUEST.(FUSION_QUERY ? "/?/".FUSION_QUERY : "//")))) теперь ругается на другое в этой же строке preg_match(): Delimiter must not be alphanumeric or backslash |
|
|
mishqa35 |
Опубликовано 02.01.2013 23:48
|
![]() Опытный пользователь ![]() Сообщений: 307 Зарегистрирован: 04.01.2011 18:50 |
можно попробывать так if (!preg_match("/adm/", $_SERVER['REQUEST_URI']) && ($p_data['panel_display'] == 1)) без всего прочего только ковычки проверь, вроде правильно посчитал |
|
Поделиться этой темой | |
Социальные закладки: |
![]() ![]() ![]() ![]() ![]() ![]() |
URL: | |
BBcode: | |
HTML: |
Перейти на форум: |