使用PHP,如何用不同的链接替换字符串中的单词。
我想用的不同链接取代单词web开发
这家网络开发公司很棒。良好的web开发开始具有
像这样
这家网络开发公司很棒。良好的web开发开始具有
我尝试过使用str_ireplace
,但是两个链接都指向同一个站点。
这是我的代码
<?php
$text = 'This web development company is great. A good web development starts with...';
$replaced = str_ireplace(array('web development', 'web development'),array('<a href="http://google.com">web development</a>', '<a href="http://yahoo.com">web development</a>'), $text);
echo $replaced;
我认为您可以使用preg_replace()
函数,如下所示:
$pattern = '/(web development)(.*)(web development)/';
$replace = '<a href="http://google.com">web development</a>$2<a href="http://yahoo.com">web development</a>';
$result = preg_replace($pattern, $replace, $text);
echo $result;
希望有帮助!
尝试使用类似的正则表达式
<?php
$text = 'This web development company is great. A good web development starts with...';
$regex = "/[^>]web development[^<]/i";
$replace = array(' <a href="http://google.com">web development</a> ',
' <a href="http://yahoo.com">web development</a> ');
$count = 1;
$replaced = preg_replace(array($regex,$regex), $replace, $text, $count);
echo $replaced;
就像在这个主题中一样,你可以做这样的事情(使用preg_replace):
$str = 'abc and abc';
$str = preg_replace('/abc/', 'google', $str, 1);
$str = preg_replace('/abc/', 'yahoo', $str, 1);
echo $str;
它将显示:"谷歌和雅虎"
(我希望我理解你的需求)
我认为你可以用preg_replace
来完成。
在主题中搜索与模式匹配的内容,并将其替换为替换
您可以将limit
设置为单词将被替换的次数。
限制:每个受试者中每个模式的最大可能替换一串默认值为-1(无限制)。
所以,我认为你可以做一个函数,首先计算"Web开发"的出现次数,然后执行:
$text = preg_replace("web development", "<a href='http://www.exemple.com'>web development</a>", $text, 1);
x次。
记住函数preg_replace:
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
请参阅PHP手册中的参考资料。