我有这个使用str_replace函数的代码:
$result = mysql_query("SELECT * FROM table");
$contact_link = "<a href=\"/contact-us/\" class=\"inline\" target=\"_parent\">Contact Us</a>";
while($row = mysql_fetch_array($result))
{
$answer = str_replace(array("contact us","Contact Us","Contact us") , array($contact_link , $contact_link , $contact_link), $row['answer']);
echo $answer;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我输入字符串"contact us"时,它返回此值:
<a href="/contact-us/" class="inline" target="_parent"><a href="/contact-us/" class="inline" target="_parent">Contact Us</a></a>
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚原因.我希望它只返回一个链接而不是两个链接封装的联系我们.我想也许是因为两个单词都以小写字母开头,所以也许它会两次返回?一次用于"联系我们",一次用于"联系我们"?我已经阅读了这个网站上的搜索结果,并进行了一些谷歌搜索,但我找不到任何有相同情况发生的事情.
如果它是相关的,我这样做的原因是,当我的客户更新他的网站时,它将返回到他的联系页面的链接.我希望有三个不同版本的联系我们,因为格式可能会根据他使用它的位置而改变.
您可以使用str_ireplace,它不区分大小写.看一下:
http://php.net/manual/en/function.str-ireplace.php
你得到这个输出的原因是因为该功能首先检查"联系我们"并用链接替换它,然后寻找刚刚添加的"联系我们",并再次替换它.
str_ireplace("contact us", $contact_link, $row['answer']);
Run Code Online (Sandbox Code Playgroud)