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

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


     14.12.2015    Общие вопросы по PHP    764

вопрос
Добрый вечер. Выручайте, ребят. 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
3

88 | 73

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
1125

1637 | 1202

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 - мой блог.

ICQ: 404-037-556
Skype: Sander8804

pznt
3

88 | 73

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

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

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

nowheremany
192

1659 | 1292

nowheremany - 14 декабря 2015 22:55 - Эксперт

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

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

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

Апельсин
3

308 | 82

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

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

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

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