制作字符串的粗体特定部分

时间:2014-03-29 11:25:32

标签: php arrays string

我有一个类似

的数组
 $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(),但它区分大小写,

注意: 我需要将给定的字符串加粗并保持不变。

5 个答案:

答案 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);