Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как исправить Warning: preg_replace():?

Как исправить Warning: preg_replace():?


     14.12.2015    Все вопросы » Общие вопросы по PHP    2856

вопрос
Добрый вечер. Выручайте, ребят. Warning: preg_replace(): Compilation failed: invalid range in character class at offset 11 in /home/tip/razbor.53live.ru/engine/modules/board/add.post.php on line 124

$http = $db->safesql( htmlspecialchars( stripslashes( $_POST['http'] ) ) );
                $phone = preg_replace( "/[^(0-9))(-\s]/i", "", $_REQUEST['phone'] ) ? $db->safesql( $_REQUEST['phone'] ) : "";    

Ответил: Sander


Такое впечатление, что кусок регулярки просто забыли дописать, а огрызки теперь "ругаются".
Попробуйте так:
$http = $db->safesql( htmlspecialchars( stripslashes( $_POST['http'] ) ) );
                $phone = preg_replace( "/[^(0-9)\)\(-\s]/i", "", $_REQUEST['phone'] ) ? $db->safesql( $_REQUEST['phone'] ) : "";  

5 комментариев

pznt
Юзер

pznt - 14 декабря 2015 22:49 -

Олег, спасибо, что откликнулся, но проблема осталась. Причем все работает, но не очень красиво что это сообщение выскакивает при нажатии "Добавить"

$http = $db->safesql( htmlspecialchars( stripslashes( $_POST['http'] ), ENT_QUOTES, $config['charset'] ) );
$phone = preg_replace( "/[^(0-9)\)\(-\s]/i", "", $_REQUEST['phone'] ) ? $db->safesql( $_REQUEST['phone'] ) : "";

а знак вопроса нужен, да?

Sander
PHP-developer

Sander - 14 декабря 2015 23:11 -

А у вас какая версия PHP?
На php 5.3 этот код нормально выполняется и не ругается.

P.S как вариант попробуйте еще так:
$phone = preg_replace( "/[^(0-9)\)\(\-\s]/i", "", $_REQUEST['phone'] ) ? $db->safesql( $_REQUEST['phone'] ) : "";  

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

pznt
Юзер

pznt - 15 декабря 2015 01:16 -

Спасибо, работает. При редактировании тоже похожее вылезало, по тому же принципу поменял - всё исчезло!

Саш, тоже спасибо.

nowheremany
Эксперт

nowheremany - 14 декабря 2015 22:55 -

По идее должно быть так
"/[^(0-9)\)\(\-\)\s]/i"

Будут доступны все цифры, знаки - ( и ), а так же пробел (или табуляция)

Благодарность принимаю тут Связь

Апельсин
Юзер

Апельсин - 16 декабря 2015 22:49 -

извините меня, но могу попросить помощи по такой же ошибке вот ТУТ ? спасибо заранее)

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх