preg_grep не показывает результат с двойными кавычками (& quot;)

Мой код выглядит следующим образом:

 $escapedOperator = ":";
$operator['symbol'] = ":";
$string = 'title: "space before" and text breaks';
if(count(preg_grep('/\w["]*\s*'.$escapedOperator.'\s*["]*\w/',$string))){
$search = "/\s*".$escapedOperator."\s*/";
$string = preg_replace($search,$operator['symbol'],$string);
}else{
$string=str_replace($operator['symbol'],"",$string);
}

Я получаю вывод:

title "space before" and text breaks

Но мне нужно:

title:"space before" and text breaks

0

Решение

Как уже упоминалось выше, preg_grep() требует массив в качестве второго параметра, а не строки. Если вы измените свой:

$string = 'title: "space before" and text breaks';

Для того, чтобы:

$string = array('title: "space before" and text breaks');

Ваш код работает, и echo $string[0];будет выводить title:"space before" and text breaks

Если цель состоит в том, чтобы просто удалить пробел вокруг двоеточия (:), то не могли бы вы просто сделать это?

$string = 'title: "space before" and text breaks';
$string = preg_replace('/\s*:\s*/', ":", $string);
echo $string[0];

Это также будет выводить title:"space before" and text breaks

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector