6

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

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

这家网络开发公司很棒。一个好的 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;
4

4 回答 4

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;

希望有所帮助!

于 2013-08-09T15:59:01.627 回答
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;
于 2013-08-09T15:54:08.133 回答
0

就像在本主题中一样,您可以执行类似的操作(使用 preg_replace):

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

它将显示:“谷歌和雅虎”

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

于 2013-08-09T15:51:11.887 回答
0

我认为您可以使用preg_replace.

搜索主题以匹配模式并用替换替换它们。

您可以将 a 设置limit为单词将被替换的次数。

limit:每个主题字符串中每个模式的最大可能替换。默认为 -1(无限制)。

所以,我认为你可以做一个功能,首先计算“Web Development”的出现次数有你的文本,然后你执行:

$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 手册中的参考资料

于 2013-08-09T15:55:35.643 回答