我正在尝试使用str_replace替换字符串中的整个单词,但是,即使单词中匹配的字母也将被替换。我尝试了preg_replace,但由于我要替换的单词很多,因此无法使用。任何帮助表示赞赏。
$array2 = array('is','of','to','page');
$text = "homepage-of-iso-image";
echo $text1 = str_replace($array2,"",$text);
the output is : home--o-image
答案 0 :(得分:0)
对于全字问题,有a solution here使用preg_replace(),您的解决方案是将/\b
添加到开头,将\b/u
添加到结尾您的数组值。不区分大小写的代码可以使用preg_replace_callback (请参见示例#1)处理,但是如果您使用的是像您的示例这样的小型数组,那么我建议您复制数组值。
适用于您的示例:
$array2 = array(
'/\bis\b/u',
'/\bof\b/u',
'/\bto\b/u',
'/\bpage\b/u',
'/\bIS\b/u',
'/\bOF\b/u',
'/\bTO\b/u',
'/\bPAGE\b/u'
);
$text = "homepage-of-iso-image";
echo $text1 = preg_replace($array2,"",$text);
答案 1 :(得分:0)
您可以使用array_diff
array array_diff ( array $array1 , array $array2 [, array $... ] )
将array1与一个或多个其他数组进行比较,并返回 其他数组中不存在的array1中的值。
<?php
$remove = array('is','of','to','page');
$text = "homepage-of-iso-image";
$parts = explode('-', $text);
$filtered = array_diff($parts, $remove);
print implode('-', $filtered);
输出:
homepage-iso-image