我有一些话,比如
“你好这篇关于游戏的文章。我们的选择是火车游戏。游戏名称是我的小火车”
我想添加如下的自动链接
“游戏”»“http://www.mywebsite.com”
“训练游戏”»“http://www.myothersiteadrwesss.com”
“game”»“http://www.my3thsiteadress.com”
我尝试使用PHP和str_replace
,但在我的代码之后
“游戏”一词有2个嵌套链接(“http://www.mywebsite.com”和“http://www.my3thsiteadress.com”)
“火车游戏”这个词有3个链接嵌套(所有3个链接)
如何解决我的问题?
最后我想要
<a href="http://www.my3thsiteadress.com">game</a>
<a href="http://www.myothersiteadrwesss.com">train games</a>
<a href="http://www.mywebsite.com">games</a>
字数可以改变
答案 0 :(得分:1)
我认为您应该使用preg_replace
代替str_replace
。这样,您可以指定要更换的更严格的正则表达式(有点像&#34;匹配整个单词&#34;)。在这里,看看http://php.net/manual/es/function.preg-replace.php)
答案 1 :(得分:1)
<?php
$string = "Hello this article about games. Our choice is train games. Name of game is My Little Train";
// Replace first pass
$string = str_replace("train games", "<a href='http://www.myothersiteadrwesss.com'>train ga3mes</a>", $string);
$string = str_replace("games", "<a href='http://www.mywebsite.com'>ga3mes</a>", $string);
$string = str_replace("game", "<a href='http://www.my3thsiteadress.com'>ga3me</a>", $string);
$string = str_replace("ga3me", "game", $string);
echo $string;
?>
Hello this article about <a href="http://www.mywebsite.com">games</a>. Our choice
is <a href="http://www.myothersiteadrwesss.com">train games</a>. Name of <a
href="http://www.my3thsiteadress.com">game</a> is My Little Train
请确保,您更换的东西非常大,复杂,并且首先包含所有单词。接下来你会选择候选词。
使用str_replace
,这是我能想到的最佳方式。否则,您需要使用regex
并提供更复杂的搜索和替换。
答案 2 :(得分:0)
我会将数组中的所有单词都指向链接,如下所示:
$str = 'The original string that you want to replace games with!';
$arr = array('games' => 'http://website.com');
然后我将遍历该数组并使用str_replace
替换字符串中的内容:
for($arr as $key => $val) {
str_replace($key, $key . ' (' . $val . ')', $str);
}
这会产生:
您要替换游戏的原始字符串 (http://website.com)与!