Добро пожаловать, Гость!
Замена функции - Страница 0
Общие вопросы | Замена функции
YETIZLO :
Всем привет. Нужно заменить устаревшею функцию ereg на preg_match, но не получается, выдает ошибку ^ - No ending delimiter '^'. Кто знает как переписать лучше? Вот код
<?phpif (ereg('^.',$rd))continue;?>
Замена функции
22 Фев 2016Всем привет. Нужно заменить устаревшею функцию ereg на preg_match, но не получается, выдает ошибку ^ - No ending delimiter '^'. Кто знает как переписать лучше? Вот код
<?phpif (ereg('^.',$rd))continue;?>
Комментарии:
vvb 22 Фев 2016
YETIZLO, меняешь if (ereg('^.',$rd))continue;
На if ($rd=='.' or $rd=='..')continue;
if (eregi('.sql$',$rd)) на if (preg_match('/(.*).sql$/i',$rd))
И далее примерно так же. Есть, конесно, вариант побыстрее, но с тела лень писать.
YETIZLO, меняешь if (ereg('^.',$rd))continue;
На if ($rd=='.' or $rd=='..')continue;
if (eregi('.sql$',$rd)) на if (preg_match('/(.*).sql$/i',$rd))
И далее примерно так же. Есть, конесно, вариант побыстрее, но с тела лень писать.
YETIZLO 22 Фев 2016
Автор темы
vvb,
<?phpif (!isset($install)){
// выполнение одноразовых запросов
$opdirtables=opendir(H.'sys/update/');
while ($rd=readdir($opdirtables))
{
if (ereg('^.',$rd))continue;
if (isset($set['update'][$rd]))continue;
if (eregi('.sql$',$rd))
{
include_once H.'sys/inc/sql_parser.php';
$sql=SQLParser::getQueriesFromFile(H.'sys/update/'.$rd);
for ($i=0;$i<count($sql);$i++){mysql_query($sql[$i]);}
$set['update'][$rd]=true;
$save_settings=true;
}
elseif(eregi('.php$',$rd))
{
include_once H.'sys/update/'.$rd;
$set['update'][$rd]=true;
$save_settings=true;
}?>
Добавлено:
Engine, if (preg_match('/^./', $rd))continue; пробовал. Здесь индикатора i нет.
Добавлено:
if (preg_match('/^.^/i', $rd))continue; Вот так ошибка исчезает. Но перестает работать капча и многое другое.
Автор темы
vvb,
<?phpif (!isset($install)){
// выполнение одноразовых запросов
$opdirtables=opendir(H.'sys/update/');
while ($rd=readdir($opdirtables))
{
if (ereg('^.',$rd))continue;
if (isset($set['update'][$rd]))continue;
if (eregi('.sql$',$rd))
{
include_once H.'sys/inc/sql_parser.php';
$sql=SQLParser::getQueriesFromFile(H.'sys/update/'.$rd);
for ($i=0;$i<count($sql);$i++){mysql_query($sql[$i]);}
$set['update'][$rd]=true;
$save_settings=true;
}
elseif(eregi('.php$',$rd))
{
include_once H.'sys/update/'.$rd;
$set['update'][$rd]=true;
$save_settings=true;
}?>
Добавлено:
Engine, if (preg_match('/^./', $rd))continue; пробовал. Здесь индикатора i нет.
Добавлено:
if (preg_match('/^.^/i', $rd))continue; Вот так ошибка исчезает. Но перестает работать капча и многое другое.
vvb 22 Фев 2016
Теоретически - обрамляешь регклярку в # и вместо ereg пишешь preg_match . Практически - Скинь код и я напишу как правильно
Теоретически - обрамляешь регклярку в # и вместо ereg пишешь preg_match . Практически - Скинь код и я напишу как правильно
Engine 22 Фев 2016
if (preg_match('/^./', $rd))continue;
Добавлено:
Но это бессмысленное условие. Оно будет всегда выполнятся если передать любую строку
if (preg_match('/^./', $rd))continue;
Добавлено:
Но это бессмысленное условие. Оно будет всегда выполнятся если передать любую строку