Intereting Posts
Как правильно деактивировать данные, полученные из текстовой области, при ее возврате в текстовую область? Как я могу получить часовой пояс локального сервера? Как найти самый большой массив из многомерного массива как проверить, работает ли ruby-скрипт в фоновом режиме из PHP-скрипта? Как вычесть значения двух разных столбцов из двух разных таблиц? MP4 воспроизводится при доступе напрямую, но не при чтении через PHP, на iOS Использование файлов YAML в качестве поставщика данных в PHPUnit (CIUnit) Обновление запроса PHP cURL с SSLv3 на TLS ..? Zend – форма не проверяется Зачем использовать автосоздание PSR-0 или PSR-4 в компоновщике, если classmap на самом деле быстрее? «При знаке» @ в объекте SimpleXML? Ошибка PHP (MySQL): «Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом» Добавить новую строку в MYSQL из Comma Разделяемый текст в текстовом поле Как проверить, успешно ли Ci вставил данные Абстрактное ключевое слово в PHP

Функция eregi () устарела

Функция eregi () устарела. Как я могу заменить eregi (). Я пытаюсь использовать preg_match, но потом перестаю работать.

Мы помогаем нам:

http://takien.com/513/how-to-fix-function-eregi-is-deprecated-in-php-5-3-0.php

КОД ПЕРЕД:

if ( ! eregi("convert$", $this->library_path)) { if ( ! eregi("/$", $this->library_path)) $this->library_path .= "/"; $this->library_path .= 'convert'; } if (eregi("gd2$", $protocol)) { $protocol = 'image_process_gd'; } 

КОД ТОГДА:

 if ( ! preg_match("convert$/i", $this->library_path)) { if ( ! preg_match("/$/i", $this->library_path)) $this->library_path .= "/"; $this->library_path .= 'convert'; } if (preg_match("gd2$/i", $protocol)) { $protocol = 'image_process_gd'; } 

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

Поэтому постарайтесь:

 if ( ! preg_match("#convert$#i", $this->library_path)) { if ( ! preg_match("#/$#i", $this->library_path)) $this->library_path .= "/"; $this->library_path .= 'convert'; } if (preg_match("#gd2$#i", $protocol)) { $protocol = 'image_process_gd'; } 

Кажется, вы просто забыли разделителя

 preg_match("~/$~", $this->library_path) 

а также

 preg_match("~gd2$~i", $protocol) 

Но в обоих случаях вам следует не использовать регулярные выражения, потому что они здесь негабаритные

 $this->library_path[strlen($this->library_path) - 1] == '/' substr($protocol, -3) == 'gd2' 

Если вы просто проверяете наличие одной строки внутри другой, вы должны просто использовать функцию strpos() . например:

 if(strpos('convert', $this->library_path) !== false) { // code here } 

Обновление: ошибка, которую вы хотите проверить для нее в END строки, это все еще возможно без Regex с помощью substr() :

 if(substr($this->library_path, -7) == 'convert' { //code here } 

Где 7 – длина преобразования, вы можете использовать strlen и вычесть его из 0, чтобы получить это число динамически. Это не запускает регулярное выражение, поэтому он намного эффективнее.