我有一个类似
的数组 $array[]="This is a test";
$array[]="This is a TEST";
$array[]="TeSt this";
我需要制作字符串' test'如bold
喜欢
$array[]="This is a <b>test</b>";
$array[]="This is a <b>TEST</b>";
$array[]="<b>TeSt</b> this";
我尝试使用str_replace()
,但它区分大小写,
注意: 我需要将给定的字符串加粗并保持不变。
答案 0 :(得分:4)
如果您正在寻找模式而不是像“test”这样的固定字符串,请查看REGEX和preg_replace
:
$str = preg_replace("#(test|otherword)#i", "<b>$1</b>", $str);
有关REGEX的更多信息:
编辑:在REGEX之后添加“i”以消除区分大小写。
答案 1 :(得分:3)
您可以使用array_walk
PHP函数替换数组中的字符串值。检查以下代码
function my_str_replace(&$item){
$item = preg_replace("/test/i", '<b>$0</b>', $item);
}
$array[]="This is a test";
$array[]="This is a TEST";
$array[]="TeSt this";
array_walk($array, 'my_str_replace');
编辑:基于John WH Smith的评论
你可以简单地使用$array = preg_replace("/test/i", '<b>$0</b>', $array);
来实现魔法
答案 2 :(得分:1)
你可以使用我在下面写的那个函数:
function wrap_text_with_tags( $haystack, $needle , $beginning_tag, $end_tag ) {
$needle_start = stripos($haystack, $needle);
$needle_end = $needle_start + strlen($needle);
$return_string = substr($haystack, 0, $needle_start) . $beginning_tag . $needle . $end_tag . substr($haystack, $needle_end);
return $return_string;
}
所以你可以按如下方式调用它:
$original_string = 'Writing PHP code can be fun!';
$return_string = wrap_text_with_tags( $original_string , 'PHP' , "<strong>" ,"</strong>");
返回时,字符串将如下所示:
原始字符串
编写PHP代码非常有趣!
修改结果
编写 PHP 代码非常有趣!
此函数仅适用于字符串的FIRST实例。
答案 3 :(得分:-1)
试试str_ireplace。不区分大小写的str_replace
答案 4 :(得分:-1)
试试这个 Using str_ireplace
str_ireplace("test", "<b>test</b>", $array);
str_ireplace("TSET", "<b>TEST</b>", $array);