2010-09-24

Заменяем ereg на preg_match

В PHP 5.3 разработчки решили, наконец, избавиться от POSIX регулярных выражений - в самом деле, зачем нужны две библиотеки для работы с регулярными выражениями, если можно обойтись одной? К тому же, POSIX регулярные выражения гораздо медленнее чем Perl совместимые регулярные выражения (PCRE).

Теперь, разработчики в срочном порядке исправляют свой код, заменяя функции ereg, eregi, ereg_replace, ereg_replacei соответствующими PCRE аналогами, благо, замена получилась довольно простой:

1. заменить ereg и eregi на preg_match, ereg_replace и ereg_replacei на preg_repalce;
2. добавить // разделители в начало и конец регулярного выражения;
3. если POSIX функция кончается на i (eregi, ereg_replacei) то добавить i в конец регулярного выражения после разделителя.
4. заменить POSIX спецсимволы соответствуюущими PCRE аналогами: [:alnum:] - \w или [0-9a-z], [:digit:] - \d или [0-9], [:space:] - \s, [:alpha:] - [a-z]

примеры:

ereg('expression') -> preg_match('/expression/')

eregi('expression') -> preg_match('/expression/i')

eregi('^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$') -> preg_match('/^[a-z0-9][a-z0-9_.-]*@[a-z0-9.-]+\.[a-z]{2,4}$/i')

Upd: оказывается шаг четвертый не обязателен - спецсимволы типа [[:alnum:]] теперь поддерживаются в PCRE!

 

комментарии:

 
Вит (анонимный пользователь) | 2011-01-03

классный у тебя сайт)))

Никита (анонимный пользователь) | 2011-03-26

Спасибо, вы очень мне помогли! :) 

Олег (анонимный пользователь) | 2011-05-11

 Спасибо!!! Для меня, как ничего не понимающего в php, здорово помогло.))))

Luden (анонимный пользователь) | 2011-05-16

Спасибо! Предельно ясно написано!

Роман (анонимный пользователь) | 2011-05-25

Подскажите пожалуйста, переписываю скрипт с этими изменениями и выскакивает ошибка.

Прежняя строка выглядела так:

if( ereg( $sVariable."\['".$sKey."'\]", $aFile[$i] ) && ereg( '=', $aFile[$i] ) ){

 

Новая строка, в соответствии с тем, что Вы написали стала такой:

 

if( preg_match($sVariable.'/\['/'.$sKey.'/'\]'/, $aFile[$i] ) && preg_match( '/=/', $aFile[$i] ) ){

 

выскакивает ошибка:

 

Warning: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash in W:\home\test1.ru\www\shop\core\common-admin.php on line 117

 

Что делать? Помогите, пожалуйста.

max | 2011-05-25

>Подскажите пожалуйста, переписываю скрипт с этими изменениями и выскакивает ошибка.

Думаю, должно быть что то вроде:

if(preg_match("/".$sVariable."\['".$sKey."'\]/", $aFile[$i]) && preg_match('/=/', $aFile[$i])){

Хотя, я бы вообще не использовал тут регулярные выражения - в данном случае задача сводится к тривиальному поиску подстроки в строке, а для этого использовать регулярные выражения слишком кудряво, лучше и быстрее будет использовать функцию strpos:

if (strpos($aFile[$i],$sVariable."['".$sKey."']")!==false && strpos($aFile[$i], '=')!==false ){

 

Роман (анонимный пользователь) | 2011-05-26

Спасибо огромное! Помогло!

Костя (анонимный пользователь) | 2011-08-03

Спасибо - помогло перейти с ereg на preg_match

Трудорг (анонимный пользователь) | 2011-10-31

Благодарствую! Полезно! :)

Валерий (анонимный пользователь) | 2011-10-31

ДОбрый день!

ну, наконец-то нашел... Пожалуёста, помогите. Сайт стоит на сревере, выдается ошибка - обновили РНР они. Писбма с сервера через сайт не идут (например, сообщение о комментарии)

Вот функция

function check_uri($uri) {
if (ereg("@",$uri)) {
$uri="mailto:".$uri;
}
return $uri;
}

Нисколько не понимаю в РНР. буду очень признателен - с меня ссылка на Ваш блог)

max | 2011-11-01

Я бы сделал вот так:

function check_uri($uri) {
    if (strpos($uri,"@")!==false) {
      $uri="mailto:".$uri;
    }
    return $uri;
}

Валерий (анонимный пользователь) | 2011-11-01

Благодарю!

Михаил По (анонимный пользователь) | 2012-01-08

Спасибо, помогло. Ещё ссылка по теме: http://www.pcre.ru

Ирек Минигулович (анонимный пользователь) | 2012-02-17

помогите переделать код пожалуйста

 

function getFileInDir($folder, $orderby, $sort){
$imagePath = JPATH_SITE ."/".$folder;
$imgFiles = JFolder::files( $imagePath );
$folderPath = $folder .'/';
$imageFile = array();
$i = 0;
foreach ($imgFiles as $file){
$i_f = $imagePath .'/'. $file;
if ( eregi( "bmp|gif|jpg|png|jpeg", $file ) && is_file( $i_f ) ) {
$imageFile[$i][0] = $file;
$imageFile[$i][1] = filemtime($i_f) ;
$i++;
}
}
$images = modJaSlideshowHelper::sortImage($imageFile, $orderby , $sort);
return $images;
}
 
нужно заменить eregi на preg_match
max | 2012-02-27

Ирек Минигулович: Ну согласно описанному выше строчка с eregi будет выглядеть как:

if ( preg_match( "/bmp|gif|jpg|png|jpeg/i", $file ) && is_file( $i_f ) ) {

Марина (анонимный пользователь) | 2012-03-20

Привет!
меня тоже интересует эта история с разделителями.
С eregi() это работало:

if (eregi("(http|://|www|href|/a|blablabla)", $msg)) {echo "такая фигня тут не нужна"; exit;}

для preg_match() что исправить?

max | 2012-03-20

Марина - не понимаю как это должно работать - если в строке $msg будет "http" или "://" или "www"... то вылетаем с ошибкой? Как-то странно плучается, может вы хотели сделать чтобы удалялись из текста все гипессылки в каноническов формате?

я не тестировал но если тот вариант что вы прислали правильный по-моему должен вполне сработать следующий код:

if (preg_match("/(http|://|www|href|/a|blablabla)/i", $msg)) {echo "такая фигня тут не нужна"; exit;}

Алексей (анонимный пользователь) | 2012-04-03

Спасибо!

Марина (анонимный пользователь) | 2012-05-08

Спасибо, max!
попробую!
Да, нужно чтоб выдавало именно ошибку, точнее - чтоб не разрешало добавлять такие сообщения. Обычно это просто спам и флуд... например в последнее время зачастили что-то типа того "предлагаю поменяться ссылками ...и пошло поехало" такие сообщения вообще не нужны, а зарегистрированные пользователи обычно такой фигней не занимаются.
В php4 eregi() очень выручала, жаль что в php5 ее убрали.
С уважением, Марина

Марина (анонимный пользователь) | 2012-05-08

К сожалению этот код не работает :( Любые ссылки не замечает вообще. Сообщения с любыми ссылками добавляются.

Марина (анонимный пользователь) | 2012-05-08

Убрали внутренние скобки и варианты кода со слэшами: :// и /a - вот без них кажется работает. И кажется проблема была именно в этих слэшах (если правильно называю эти черточки, незнаю, обратные они или прямые, но думаю Вы меня поняли)  ;-)

С уважением, Марина

Vit (анонимный пользователь) | 2012-05-08

А вот такое чудо что означает? ereg("[$d$q\n\r]") и на что его можно заменить?

max | 2012-05-08

Vit - судя по всему это чудо означает проверить если в тексте переносы строк и еще нечно, определенное в $d и $q - может быть все что угодно, нужно смотреть исходник. Заменить можно таким:

preg_match("/[$d$q\n\r]/")

Очень странно, что регулярное вырожение взято в [] если нужно проверить, что строки кончаются определенным окончанием то [] тут не нужны, [] означают любой символ из множества данных, но я сильно сомневаюсь, что в тексте множно поменять местами \n и \r (всегда забываю что идет в начале, но порядок важен).  

Vit (анонимный пользователь) | 2012-05-08

Да, забыл совсем, что в двойные кавычки можно вставлять значения переменных. Полный текст выглядит так:

    function fputcsv($f, $list, $d=",", $q='"') {
        $line = "";
        foreach ($list as $field) {
            $field = str_replace("\r\n", "\n", $field);
            if(ereg("[$d$q\n\r]", $field)) {
                $field = $q.str_replace($q, $q.$q, $field).$q;
            }
            $line .= $field.$d;
        }
        $line = substr($line, 0, -1);
        $line .= "\n";
        return fputs($f, $line);
    }

max | 2012-05-08

А, понятно, это для генерации csv файлов, тогда preg_match("/[$d$q\n\r]/") это определенно то что нужно.

Владимир (анонимный пользователь) | 2012-08-08

И все равно!!!

Я не знаю как и чем думали создатели новых версий PHP но элементарный тест

$str="123ыва";


if(preg_match("/[a-z0-9]{1,}/",$str,$arr))
{echo"хорошо";}
else
{echo"плохо";}

Т.е. попытка проверить соответствие строки $str регулярному выражению [a-z0-9]{1,}

 

Результат:

хорошо

Array ( [0] => 123 )

да нет ребята это все плохо это все ОЧЕНЬ! плохо оно его пропустило и мало того оно сделало выборку только цифр когда как ereg никогда бы себе такого НЕ ПОЗВОЛИЛ!!!!

И preg_match возвращает FALSE в случае, если во время выполнения возникли какие-либо ошибки.

так чем заменить ereg?!

Владимир (анонимный пользователь) | 2012-08-08

Исправьте версию PHP у Вас опечтка

max | 2012-08-08

исправил, но честно говоря пример мне не совсем понятен. В данном примере идет поиск строки состоящей из символов входящих в множество a-z0-9 - русские буквы туда никак не входят, хотите русских букв делайте так:

 

$str="123вава";
 
 
if(preg_match("/[a-zа-я0-9]{1,}/m",$str,$arr))
{echo"хорошо";}
else
{echo"плохо";}
Владимир (анонимный пользователь) | 2012-08-08

Да в том то и дело не хочу чтобы давая такую строку на проверку $str="123вава" ,а рег выражение [a-z0-9]{1,}...чтобы по if было true

чтобы строка которая содержит нежелательные символы срабатывала на else на ....плохо....

т.е. в данном случае строка с русскими буквами со знаками пунктуации и с заглавными латинскими, не должна срабатывать а она срабатывает должна печатать..... плохо..... а она печатает хорошо.

Вот еще подробнее, как заставить preg_match при шаблоне [a-z0-9]{1,} и проверки строки 123вава заставить выдать на выходе false чтобы в if не печатало ...хорошо...

max | 2012-08-09

Дело в том, что preg_match ищет в тексте те конструкции, которые удовлетворяют твоему регулярному выражению, но не наоборот, [a-z0-9]{1,} - в данном случае в строке 123вава будет найденно именно 123 потому что именно это ты и просил. Если хочешь отсечь нежелательные символы их и ищи - используй [^a-z0-9] тогда если preg_match их найдет, значит они есть. RTFM.

Сергей (анонимный пользователь) | 2012-08-27

 

Здравствуйте помогите пожалуста. Версия PHP 5.3.5. Wordpress PDA & iPhone при активации выдает ошибку:
Deprecated: Function eregi() is deprecated in /wp-content/plugins/wp-pda/pda.php on line 96function detectPDA($query) {
Кусочек кода:
 
$browserAgent = $_SERVER ['HTTP_USER_AGENT'];
$userAgents = $this->getBrowserAgentsToDetect ();
foreach ( $userAgents as $userAgent ) {
if (eregi ( $userAgent, $browserAgent )) {
if (eregi ( "iphone", $browserAgent ) || eregi ( "ipod", $browserAgent ) || eregi ( "android", $browserAgent )) {
$this->smartPhone = true;
} else {
$this->pda = true;
}
}
}
}
max | 2012-08-27

Ох уж этот вордпресс, в коде представленном выше вообще не нужны регулярные выражения, достаточно поска подстроки в строке, вот по идее что должно быть:

$browserAgent = $_SERVER ['HTTP_USER_AGENT'];
$userAgents = $this->getBrowserAgentsToDetect ();
foreach ( $userAgents as $userAgent ) {
    if (strpos($browserAgent, $userAgent )!==false) {
        if (strpos($browserAgent,"iphone")!==false || strpos($browserAgent,"ipod")!==false || strpos($browserAgent,"android")!==false) {
            $this->smartPhone = true;
        } else {
            $this->pda = true;
        }
    }
}

p.s. в примере

max | 2012-08-27

хотя... может с подстрокой не сработать, нужно бы еще посмотреть что в getBrowserAgentsToDetect - если там список агентов в виде регулярных выражений, тогда, да, нужно тоже будет использовать preg_match.

Сергей (анонимный пользователь) | 2012-08-27

Спасибо за помощь, обратился за помощю на форум, вопрос успешно решен http://bit.ly/Pj2p5W

Все работает (анонимный пользователь) | 2012-11-02

Чудо вражеской техники заработало.

Анатолий (анонимный пользователь) | 2012-11-07

Добрый день!

Извените за тупость ,но не могу решить проблемму . Подскажите поалуйста.Есть код.

 

 while($index < count($hosts) && $connection == false) {
      $hostinfo = array();
      if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo)) {
        $host = $hostinfo[1];
        $port = $hostinfo[2];
      } else {
        $host = $hosts[$index];
        $port = $this->Port;
      }
Выдает предуприждение
Deprecated: Function eregi() is deprecated in /var/www/dombtz12880/data/www/dombt.zp.ua/includes/classes/class.phpmailer.php on line 592

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.server.com:25 (Connection refused) in /var/www/dombtz12880/data/www/dombt.zp.ua/includes/classes/class.smtp.php on line 122

Warning: Cannot modify header information - headers already sent by (output started at /var/www/dombtz12880/data/www/dombt.zp.ua/includes/classes/class.phpmailer.php:592) in /var/www/dombtz12880/data/www/dombt.zp.ua/includes/functions/general.php on line 33
меняю
 
 if(eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo))
на
 if( preg_match('/^(.+):([0-9]+)$/i', $hosts[$index], $hostinfo))
выдает
Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.server.com:25 (Connection refused) in /var/www/dombtz12880/data/www/dombt.zp.ua/includes/classes/class.smtp.php on line 122

Warning: Cannot modify header information - headers already sent by (output started at /var/www/dombtz12880/data/www/dombt.zp.ua/includes/classes/class.smtp.php:122) in /var/www/dombtz12880/data/www/dombt.zp.ua/includes/functions/general.php on line 33
что делать спасибо.
 
 
max | 2012-11-07

> Анатолий замените eregi('^(.+):([0-9]+)$', $hosts[$index], $hostinfo) на preg_matсh('/^(.+):([0-9]+)$/i', $hosts[$index], $hostinfo) и будет всё работать!

max | 2012-11-07

Анатолий, сорри не дочитал до конца - вторая ошибка связана с тем что не доступен smtp.server.com видимо нужно проверить конфиги и заменить smtp.server.com на реальный адрес smtp сервера. Эта ошибка никак не связана с регулярными выражениями.

uriy | 2012-11-23

Hi!
Помоги переписать код и ответ выложить на твой блог!
ОШИБКА  preg_match(): Delimiter must not be alphanumeric or backslash

            <li <?php if (eregi('finansi/pinkodi', url::current())) echo 'class="active"' ?>><span class="q03"><a href="/fin/pin" title="PIN">PIN</a></span></li>
            
переделаный мной
<li <?php if (preg_match('fin/pin', url::current())) echo 'class="active"' ?>><span class="q03"><a href="/finansi/pinkodi" title="PIN">PIN</a></span></li>

max | 2012-11-23

uriy > забыл ты разделители добавить в начало и конец! должно быть preg_match('#fin/pin#', url::current()) -  так как / у тебя уже есть то вместь / я использовал # иначе нужно было бы писать \/

uriy (анонимный пользователь) | 2012-11-23

<li <?php if (preg_match('#fin/pin#i', url::current())) echo 'class="active"' ?>><span class="q03"><a href="/finansi/pinkodi" title="PIN">PIN</a></span></li>

Сплеш #i забыл?

uriy (анонимный пользователь) | 2012-11-23

В ощем спасибр заработало!

Но хочеца знать  как запретить в штацесс  новые функции пшп 5,5.заблокировать errors или отключить eregi.

был способ но я немогу его найти.

Юрий (анонимный пользователь) | 2013-01-03

Подскажите пожалуйста, как исправить

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 : ""))))

ругается на ереги:(

классный сайт, но к сожалению не все понимаю в програмировании

max | 2013-01-03

Юрий, попробуй вот так, трудно сказать что либо определенное не зная значений констант, но думаю должно сработать:

if (strpos($_SERVER['REQUEST_URI'],"adm")===false && ($p_data['panel_display'] == 1 || preg_match((SEO == "1" ? "#".BRD_INDEX_FILE_HTML."$#i": "#".BRD_INDEX_FILE_PHP."$#i"), FUSION_REQUEST.(FUSION_QUERY ? "?".FUSION_QUERY : ""))))

юрий (анонимный пользователь) | 2013-01-03

что-то не сработало:( контент перестал показываться даже

max | 2013-01-03

Юрий, попробуй замени !== на ===, по-моему, это более правильно

юрий (анонимный пользователь) | 2013-01-03

вроде сработало!!! спасибо огромное, ошибку не выает:)

Вик (анонимный пользователь) | 2013-01-10

Подскажите, плз, как исправить код?

Изначально -

if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))

пробовал добавлять разделители - где-то ошибка

if(preg_match('/^([^=]*)["\/']?([^"\/']*)["\/']?$/',$v,$a3))

 

max | 2013-01-11

Вик, у меня получилась такая версия (у тебя лишние слеши в коде):

if(preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/',$v,$a3))

Алекс (анонимный пользователь) | 2013-01-26

Скрипт пишет такую ошибку   Deprecated: Function ereg_replace() is deprecated in     Вот эта строка   $args = explode('-', ereg_replace('([ ]+)', ' ', $command));     Как лучше заменить???

Владислав (анонимный пользователь) | 2013-01-30

Добрый день.

Не могу правильно поменять:

...

$patt="($this->block_start_word|$this->block_end_word)[[:blank:]]*([0-9a-zA-Z\_]+)[[:blank:]]*$this->block_end_delim(.*)";
                if (eregi($patt,$v,$res)) {...

...

помогите пожалуйста.

Заранее спасибо за быстрый ответ.

max | 2013-02-01

Алекс, видимо вот так: $args = explode('-', preg_replace('/([ ]+)/', ' ', $command));

max | 2013-02-01

Владислав, а что так не срабатывает?:

$patt="/($this->block_start_word|$this->block_end_word)[[:blank:]]*([0-9a-zA-Z\_]+)[[:blank:]]*$this->block_end_delim(.*)/i";
                if (preg_match($patt,$v,$res)) {...

Богдан (анонимный пользователь) | 2013-02-24

Не разбираюсь в програмировании помогите пожалуйста:

Ошибка: 

Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 60
Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 64
Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 68
Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 72
Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 75

Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 78
Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 81
Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 84

Deprecated: Function eregi() is deprecated in /home/длинный путь/includes/init.php on line 87

Warning: Cannot modify header information - headers already sent by (output started at /home/длинный путь/includes/init.php :60) in /home/xxx/xx/xxxxxxx/xxxxxx/xxx/includes/global.php on line 65

Файл init.php :

 if (!eregi("sell_item.php", $_SERVER['PHP_SELF']) || !eregi("sell_item.php", $_SERVER['PHP_SELF']) || $_REQUEST['option'] == "new_item" || eregi("sell_item.php", $_SERVER['PHP_SELF']) && $_REQUEST['option'] == "sell_similar") {
$session->unregister("auction_id");
$session->unregister("refresh_id");
}
if (!eregi("wanted_manage.php", $_SERVER['PHP_SELF']) && !eregi("category_selector.php", $_SERVER['PHP_SELF'])) {
$session->unregister("wanted_ad_id");
$session->unregister("wa_refresh_id");
}
if (!eregi("reverse_manage.php", $_SERVER['PHP_SELF']) && !eregi("category_selector.php", $_SERVER['PHP_SELF'])) {
$session->unregister("reverse_id");
$session->unregister("reverse_refresh_id");
}
if (eregi("edit_item.php", $_SERVER['PHP_SELF'])) {
$session->unregister("edit_refresh_id");
}
if (eregi("bid.php", $_SERVER['PHP_SELF'])) {
$session->unregister("bid_id");
}
if (eregi("reverse_bid.php", $_SERVER['PHP_SELF'])) {
$session->unregister("reverse_bid_id");
}
if (eregi("buy_out.php", $_SERVER['PHP_SELF'])) {
$session->unregister("buyout_id");
}
if (eregi("make_offer.php", $_SERVER['PHP_SELF'])) {
$session->unregister("make_offer_id");
}
if (eregi("swap_offer.php", $_SERVER['PHP_SELF'])) {
$session->unregister("swap_offer_id");
}
$start = abs(intval($_GET['start']));

?>

Николай (анонимный пользователь) | 2013-05-21

Подскажите, пожалуйста, а как быть с такой строкой

  if (eregi('://', $url)) { $url = str_replace('://', '!@#', $url); }

max | 2013-05-21

Николай, попробуйте,

if (strpos($url,'://')!==false) { $url = str_replace('://', '!@#', $url); }

Дмитрий (анонимный пользователь) | 2013-08-13

Ребят, пишет что здесь ошибка.. 

if (ereg (".gif$", "$file")){

 

Сам не шарю в PHP. Помогите нубу....

Сергей Нестеровский (анонимный пользователь) | 2013-08-21

Отличный пост! Мне очень помогло

Михаил (анонимный пользователь) | 2013-10-29

Спасибо!!

Олег (анонимный пользователь) | 2013-11-07

Помогите пожалуйста сам немогу сделать((

return (is_array($login)) ? false : (ereg("{$mask}{$len}$", $login)) ? $login : false;

и сдесь

return (is_array($password)) ? false : (ereg("{$mask}{$len}$", $password)) ? $password : false;

andrei (анонимный пользователь) | 2013-11-30

Установил движок 2z, на локалке все косяки которые вылезли я смог сам исправить, т.к. там было что исправлять. Но когда этот же движок установил на хостинг и вылезла точно такая же ошибка Deprecated: Function eregi() is deprecated in Те инструкции которые до этого мне помогали тут никак не подошли! В строке 

global $lang, $member_db, $userROW, $config, $PHP_SELF;

нет никакого eregi() как видите! И как там править я даже понятия не имею! Подскажите пожалуйста, как быть в моём случае? Причём на локалке и на хостинге этот же файл и эта же строка - templates.class.php, строка 91 совершенно разные! Хотя по идее должны бы быть одинаковые!!

andrei (анонимный пользователь) | 2013-11-30

Всё, проблема решена. Установил сайт на локалке и уже установленный, как есть в папке переместил на хостинг, ошибка больше не появлялась. Странно всё равно - ведь установился то он нормально на хостинге! Ну ладно, по какой-то причине движок заглючил(или хостинг, или FTP клиент, или моё интернет соединение), но всё равно непонятно каким образом файлы templates.class.php с локалки и с хостинга оказались столь разными?? Чертовщина какая-то!

Novichok (анонимный пользователь) | 2014-04-19

подскажите пожалуйста.. что тут не так,.. как правильно прописать, выходит ошибка

Warning: preg_match(): Delimiter must not be alphanumeric or backslash in /home/tralalala in line 431

 if (preg_match('' . '\\/\\/' . $host, $referer))

Макс (анонимный пользователь) | 2014-07-29

помогите заменить

elseif (ereg("/[0-9a-z_]+@[0-9a-z_^\.]", "", $_POST[email])){

Сергей (анонимный пользователь) | 2014-08-15

помогите выдаёт ошибку Deprecated: Function eregi() is deprecated in /home/u328329811/public_html/includes/init.php on line 60

if (!eregi("sell_item.php", $_SERVER['PHP_SELF']) || !eregi("sell_item.php", $_SERVER['PHP_SELF']) || $_REQUEST['option'] == "new_item" || eregi("sell_item.php", $_SERVER['PHP_SELF']) && $_REQUEST['option'] == "sell_similar") {
    $session->unregister("auction_id");
    $session->unregister("refresh_id");

Андрей (анонимный пользователь) | 2014-10-07

Помогите пожалуйста сам немогу сделать((

return (is_array($login)) ? false : (ereg("{$mask}{$len}$", $login)) ? $login : false;

Сергей (анонимный пользователь) | 2014-12-12

Помогите что тут не так

 if (!ereg("^[a-zA-Zа-яА-Я0-9\-_]{1,255}$", $mensaje)) {
$mensaje = htmlentities(stripslashes(strtolower(trim($mensaje))));
$mensaje = str_replace("'"," ",$mensaje);
$mensaje = str_replace(";"," ",$mensaje);
$mensaje = str_replace("$"," ",$mensaje);
return $mensaje;
   }else{ return $mensaje; }
Алексей (анонимный пользователь) | 2017-08-04
if (eregi("(jpg|jpeg|gif|png)$",$file)) { как тут чайнику быть? info@sima.spb.ru

Для того чтобы каждый раз не представляться можно войти как зарегистрированный пользователь.

Имя*

разрешены только теги br, font, span, p, strong, u, p, blockquote, a, div, img - остальные будут безжалостно удаляться