查找不区分大小写的字符串并替换(PHP)

时间:2014-01-14 02:40:16

标签: php string replace

我正在使用SimpleXML从XML文档中获取一些数据,如果数据包含搜索词,那么我希望它突出显示。因此,用户首先输入搜索词,然后逐个元素地处理XML文档,并执行字符串搜索。我已经知道如何使用SimpleXML,但我不太确定如何找到不区分大小写的字符串并将其替换为自身加上一些标记。

  • 用户输入“brown fox”(不带引号)作为搜索词。
  • Web服务器循环遍历所有XML元素,并查找不区分大小写的匹配(每个元素一个或多个)。
  • 如果存在匹配(一个或多个),则不区分大小写的术语将被替换为自身和一些用于标记的HTML代码。否则,元素文本只会在没有标记的情况下输出。

如果文件包含:“快速的棕色狐狸跳过懒狗。”然后输出应该是相同的字符串,但通过CSS突出显示“棕色狐狸”。

1 个答案:

答案 0 :(得分:0)

这可能对您有用:

<?php
$html = "The quick brown fox jumps over the lazy dog";
$replace = preg_replace('/\A(.*?)(brown fox)(.*?)\z/sim', '$1<span STYLE="font-size: x-large; color: #ffffff">$2</span>$3', $html);
echo $replace;
// The quick <span STYLE="font-size: x-large; color: #ffffff">brown fox</span> jumps over the lazy dog
?>

DEMO