在字符串中搜索单词并用不同的链接替换该单词

时间:2013-08-09 15:40:14

标签: php

使用PHP,如何用不同的链接替换字符串中的单词。

我想按顺序用不同的链接替换web开发这个词

  

这家网络开发公司很棒。一个良好的Web开发开始   与...

喜欢这样

  

这家web development公司很棒。一个好web development开始   与...

我尝试过使用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;

4 个答案:

答案 0 :(得分:5)

我认为您可以使用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;
希望有所帮助!

答案 1 :(得分:1)

尝试使用正则表达式:

<?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;

答案 2 :(得分:0)

this topic中,您可以执行类似的操作(使用preg_replace):

$str = 'abc and abc'; 
$str = preg_replace('/abc/', 'google', $str, 1); 
$str = preg_replace('/abc/', 'yahoo', $str, 1);
echo $str;

它将显示:“google and yahoo”

(我希望我理解你的需要)

答案 3 :(得分:0)

我认为你可以用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手册中的reference