Eregi php чем заменить
Перейти к содержимому

Eregi php чем заменить

  • автор:

ereg_replace

Эта функция сканирует строку string для поиска совпадений с pattern , затем заменяет совпавший текст на replacement .

Внимание

С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.

Список параметров

Расширенное регулярное выражение POSIX.

Если pattern содержит подстроки в скобках, replacement может содержать подстроки вида \ digit , которые будут заменены текстом, совпавшим с digit-подстрокой в скобках; \0 воспроизведет все содержимое строки. Может использоваться до 9 подстрок. Круглые скобки могут быть вложенными, в этом случае они подсчитываются по открывающим скобкам.

Возвращаемые значения

Возвращается измененная строка. Если в строке string совпадений не найдено, она возвратится без изменений.

Примеры

Например, следующий фрагмент кода печатает «This was a test» три раза:

Пример #1 Пример использования ereg_replace()

$string = «This is a test» ;
echo str_replace ( » is» , » was» , $string );
echo ereg_replace ( «( )is» , «\\1was» , $string );
echo ereg_replace ( «(( )is)» , «\\2was» , $string );

Единственное, что следует принять к сведению — если вы используете целочисленное значение как параметр replacement , вы можете не получить ожидаемого результата. Это происходит из-за того, что функция ereg_replace() будет интерпретировать число как порядковое значение символа. Например:

Пример #2 Пример использования ereg_replace()

/* Это будет работать не так, как ожидалось. */
$num = 4 ;
$string = «В этой строке четыре слова.» ;
$string = ereg_replace ( ‘четыре’ , $num , $string );
echo $string ; /* Вывод: ‘В этой строке слова.’ */

/* Это будет работать. */
$num = ‘4’ ;
$string = «В этой строке четыре слова.» ;
$string = ereg_replace ( ‘четыре’ , $num , $string );
echo $string ; /* Вывод: ‘В этой строке 4 слова.’ */
?>

Пример #3 Замена URL-адресов на ссылки

Примечания

Замечание:

С версии PHP 5.3.0, расширение regex помечено устаревшим и заменено расширением PCRE. Вызов этой функции приведет к ошибке уровня E_DEPRECATED . Смотрите список отличий для помощи при конвертировании в PCRE.

Подсказка

Функция ereg_replace() является устаревшей начиная с PHP 5.3.0. Предлагается использовать вместо неё функцию preg_replace() .

Смотрите также

  • ereg() — Совпадение с регулярным выражением
  • eregi() — Совпадение с регулярным выражением без учёта регистра
  • eregi_replace() — Осуществляет замену по регулярному выражению без учета регистра
  • str_replace() — Заменяет все вхождения строки поиска на строку замены
  • preg_replace() — Выполняет поиск и замену по регулярному выражению
  • quotemeta() — Экранирует специальные символы

Eregi php чем заменить

Здесь могла бы быть ваша реклама

Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel

Помог: 3 раз(а)

Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.

Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо

После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..

Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.

Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.

На последок как оно происходит на форумах

Цитата:

Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.

Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account']))  if (

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) telnet else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['account'] && strlen(

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) telnet else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['account'])20 && strlen(

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) telnet else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['account'])>=3 && strlen(

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) news else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['password'])>=3 &&

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) gopher else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['password'] &&

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) telnet else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['password2'] &&

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) telnet else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['password']==

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) news else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST['password2']) https else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>
POST[‘account’])) die («

Error: SQL-Injection

«); if (!eregi(«^[a-zA-Z0-9_]+$»,

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) news else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST[‘password’])) die («

Error: SQL-Injection

«); $pass = (

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) news else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST[‘password’]); $username = (

Замена eregi() на preg_match()

Author24 — интернет-сервис помощи студентам

Всем привет, нужно перевести функцию eregi(), в preg_match(), постоянно возникают проблемы с синтаксисом и тд, хотя и разделители правильно стоят. Жду ваших вариантов. Частая ошибка:SQL-Injection.

1 2 3 4 5 6 7 8
if (isset($_POST['account'])) news else { if (!mysql_query("INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$username', SHA1(CONCAT(UPPER('$username'),':',UPPER('$pass'))), '".$_POST['email']."', $tbc)", $realmd)) {echo "

Ошибка

"
;} else {echo "

Аккаунт успешно зарегистрирован!

"
;} } } else { echo "

Проверьте правильность ввода!

"
; } } ?>

POST[‘account’]);
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

eregi на preg_match()
есть такая строка (eregi("^(http else { if (!mysql_query(«INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES (‘$username‘, SHA1(CONCAT(UPPER(‘$username‘),’:’,UPPER(‘$pass‘))), ‘».$_POST[’email’].«‘, $tbc, $realmd)) {echo «

Ошибка

«
;} else {echo «

Аккаунт успешно зарегистрирован!

«
;} } } else { echo «

Проверьте правильность ввода!

«
; } } ?>

Eregi php чем заменить

В 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]

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(); 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) ; $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))

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

max | 2012-03-20

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

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

if (preg_match(«/(http|://|www|href|/a|blablabla)/i», $msg))

Алексей (анонимный пользователь) | 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 — может быть все что угодно, нужно смотреть исходник. Заменить можно таким:

Очень странно, что регулярное вырожение взято в [] если нужно проверить, что строки кончаются определенным окончанием то [] тут не нужны, [] означают любой символ из множества данных, но я сильно сомневаюсь, что в тексте множно поменять местами \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 регулярному выражению [a-z0-9]

хорошо

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))
Владимир (анонимный пользователь) | 2012-08-08

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

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

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

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

max | 2012-08-09

Дело в том, что preg_match ищет в тексте те конструкции, которые удовлетворяют твоему регулярному выражению, но не наоборот, [a-z0-9] — в данном случае в строке 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;
$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;
>
>
>

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]; $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

max | 2012-11-23

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

uriy (анонимный пользователь) | 2012-11-23
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

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

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

max | 2013-01-11

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

Алекс (анонимный пользователь) | 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

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *