我有一些代码正在运行,它会在字符串中找到hashtags并将它们变成链接。我这样做使用preg_match_all
如下图所示:合并preg_match_all和preg_replace
if(preg_match_all('/(#[A-z_]\w+)/', $postLong, $arrHashTags) > 0){
foreach ($arrHashTags[1] as $strHashTag) {
$long = str_replace($strHashTag, '<a href="#" class="hashLinks">'.$strHashTag.'</a>', $postLong);
}
}
而且,我的搜索脚本,我需要大胆的关键字搜索结果中的字符串。同样的事情也使用preg_replace
下面的代码:
$string = "This is description for Search Demo";
$searchingFor = "/" . $searchQuery . "/i";
$replacePattern = "<b>$0<\/b>";
preg_replace($searchingFor, $replacePattern, $string);
,我遇到的问题是,这两个要一起努力,应该抛出一个综合作用的结果。我能想到的一种方法是从preg_match_all
和preg_replace
代码运行结果字符串,但如果标记和搜索的字符串是相同的呢?第二个块也会粗体显示我的标签,这也是不需要的。
更新代码我是总部设在下面给出的答案运行,但它仍然无法正常工作
if(preg_match_all('/(#[A-z_]\w+)/', $postLong, $arrHashTags) > 0){
foreach ($arrHashTags[1] as $strHashTag) {
$postLong = str_replace($strHashTag, '<a href="#" class="hashLinks">'.$strHashTag.'</a>', $postLong);
}
}
在此之后
而且,我立即运行此
$searchingFor = "/\b.?(?<!#)" . $keystring . "\b/i";
$replacePattern = "<b>$0<\/b>";
preg_replace($searchingFor, $replacePattern, $postLong);
正是如此你知道,这是一个while
循环内,这是产生的列表
有人可以提出一些建议/ – coder101 2013-04-25 15:33:41
你可以发布完整的while循环吗? – miah 2013-04-27 13:04:35