在字符串中搜索一个单词,并将该单词替换为不同的链接php


search a string for a word and replace that word with different links php

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