2017-02-08 10 views
0

У меня есть строка, которую я хочу фильтровать. Я хочу найти несколько слов, которые хочу заменить, используя preg_replace. Мои параметры - это массив слов, которые я хочу извлечь из своей строки, а мои замены - просто пустое пространство. Может кто-то, пожалуйста, помогите мне решить эту проблему.Заменить строку массивом в preg_replace

Мой код:

$str = "Hello world. It's a beautiful day."; 
$para = array("world","day"); 
$newstr = preg_replace('/\b($para)\b/','',$str); 
echo $newstr; 

ответ

0

Вы можете использовать его как это:

$str = "Hello world. It's a beautiful day."; 
$para = array("/world/","/day/"); 
$newstr = preg_replace($para,'',$str); 
echo $newstr; 
+0

Hi @sadlyblue. Большое спасибо за ответ. Теперь его работы прекрасны. Просто еще одна вещь .. что, если я хочу заменить "." (его точка) также в строке. на самом деле я хочу взорвать эту строку в массиве и найти пространство, а не печатать массив, но я не хочу, чтобы эта точка попала в мой массив. – Francisco

+0

На самом деле я не хочу, чтобы пустое пространство или точка попадали в мой массив. – Francisco

+0

Вы хотите массив всех слов без точек и пробелов? – sadlyblue

0

Regex не может быть массивом, но первый параметр preg_replace может быть массивом регулярных выражений, вам необходимо:

$para = array("/\bworld\b/", "/\bday\b/"); 
$newstr = preg_replace($para, '', $str); 

Я добавил слово boun dary arround слова, для не соответствующих слов, таких как daily

+0

Спасибо @Toto. Это было действительно полезно. Да, я понял теперь. Если бы у меня было слово «группа» в моей строке, финальная строка была бы просто «b», так как я заменяю «и». Еще раз спасибо. – Francisco