изменить ereg на preg_match oscommerce - PullRequest
0 голосов
/ 30 января 2012

Привет всем, у меня есть вопрос с устаревшей / устаревшей функцией.

Мне нужно изменить ereg на preg_match

код с функцией такой: http://pastebin.com/jMBkJSEr

Я устал менять ereg на preg_match, но это не работает, просто меняя название функции.

Ответы [ 3 ]

2 голосов
/ 18 ноября 2012

в дополнение к описанным выше, есть также eregi, которая должна быть обновлена, что является просто нечувствительной к регистру версией ereg. Поэтому замените его на preg_match и переключатель «i», чтобы сделать его нечувствительным к регистру.

Изменить eregi

eregi ('RegExp', $ x)

в preg_match (обратите внимание на «i» после второго /)

preg_match ('/ RegExp / i', $ x)

1 голос
/ 30 января 2012

Вам нужно изменить:

function tep_sanitize_string($string) {
        $string = ereg_replace(' +', ' ', trim($string));

        return preg_replace("/[<>]/", '_', $string);
}

до

function tep_sanitize_string($string) {
        $string = preg_replace('{ +}', ' ', trim($string));

        return preg_replace("/[<>]/", '_', $string);
}

Есть также много других вызовов ereg_replace, которые вы можете найти:

ereg_replace('2037' . '$', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037)));
ereg_replace('"', ' ', $pieces[$k]);
ereg_replace('(' . implode('|', $from) . ')', $to, $string);
ereg_replace('[^0-9]', '', $number);
ereg_replace('-language', '-' . $languages[$j]['directory'], $cached_file);
ereg_replace('(' . implode('|', $from) . ')', $to, $string);
ereg_replace("\r","",$which_text);
ereg_replace('-language', '-' . $language, $cache_blocks[$i]['file']);
ereg_replace(",\n$", '', $schema);
ereg_replace("\n#", "\n".'\#', $row);
ereg_replace(', $', '', $schema);

Вы должны изменить их на

preg_replace('{2037\z}', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037)));
str_replace('"', ' ', $pieces[$k]);
preg_replace('{(' . implode('|', $from) . ')}', $to, $string);
preg_replace('{\D}', '', $number);
str_replace('-language', '-' . $languages[$j]['directory'], $cached_file);
str_replace("\r","",$which_text);
str_replace('-language', '-' . $language, $cache_blocks[$i]['file']);
preg_replace("{,\n\z}", '', $schema);
preg_replace("{\n#}", "\n".'\#', $row);
preg_replace('{, \z}', '', $schema);

Надеюсь, это то, что вы хотите

РЕДАКТИРОВАТЬ:

Есть только одно изменение:

ereg('RegExp', $x $y);

до

preg_match('/RegExp/', $x $y);

То же самое для «ereg_replace»

ereg_replace('RegExp', $x, $y);

до

preg_replace('/RegExp/', $x, $y);

Надеюсь, вы получите это.

EDIT:

Также раскол амортизируется. Вам следует изменить:

$pieces = split('[[:space:]]+', $search_str);

до

$pieces = preg_split("/[\s,]+/", $search_str);

Надеюсь, что это поможет вам

0 голосов
/ 23 апреля 2014

Новая версия oscommerce была изменена eregi на preg_match

eregi('eregi data here ', $x)
preg_match('/here your eregi data/', $x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...