Задать вопрос
@tempick

Почему не работает preg_replace в другой версии PHP?

Есть регулярное выражение
preg_replace('~[^-a-z0-9_]+~u', '-', $str);
Я плох в регулярках, это просто готовый скопированный код. Так вот - он работает под PHP 7.1 но на 7.2 и выше - возвращает пустую строку. Что за магия?
  • Вопрос задан
  • 209 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
<?php
$str = '12$34%56';
var_dump(preg_replace('~[^-a-z0-9_]+~u', '-', $str));
// 7.1.0: string(8) "12-34-56"
// 7.2.4: string(8) "12-34-56"
// 7.3.5: string(8) "12-34-56"
// 7.4.7: string(8) "12-34-56"

Где-то не там копаете, не в версии PHP дело.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
А не смотрел что на ходится в $str перед вызовом регулярки?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект