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