这是一个非常奇怪的错误,我正在尝试修复未成功的问题。 我正在尝试检查链接是否包含字符串:
<img src="http://bglradio.net/sam/Web-Images/dancing-girl-6.gif" alt="Dancing Girl" width="160" height="250">
输出为:
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
echo $actual_link;
然后:
http://xxx.xxx.xxx.xxx/plesk-site-preview/***********.com/xxx.xxx.xxx.xxx/
问题在于,尽管if(strstr($actual_link,"plesk-site-preview") ){
echo"<meta name='robots' content='noindex'>";
}
中包含子字符串plesk-site-preview
,strstr仍返回false。
如何解决此错误?
编辑:
出于测试目的,我在http://xxx.xxx.xxx.xxx/plesk-site-preview/***********.com/xxx.xxx.xxx.xxx/
之前插入了以下行:
if(strstr($actual_link,"plesk-site-preview") ){
现在代码可以正常工作了!似乎在IF语句之前丢失了在$ actual_link变量处分配的字符串。
答案 0 :(得分:1)
string strstr(字符串$ haystack,混合$ needle [,bool $ before_needle = FALSE])
从第一个(包括第一个)开始返回干草堆字符串的一部分 到干草堆尽头的针的发生。
返回字符串的一部分,如果找不到针,则返回FALSE。
然后您编码
if(strstr($actual_link,"plesk-site-preview"))
也许应该是
if(strstr($actual_link,"plesk-site-preview") != "")
,因为它返回一个字符串,如果成功则返回一个布尔值。
嗯,实际上
会更好 if(strstr($actual_link,"plesk-site-preview") !== FALSE)
答案 1 :(得分:0)
如果您需要检查字符串中是否存在子字符串,则可以使用strpos,例如:
if(strpos($actual_link, "plesk-site-preview")){
echo"<meta name='robots' content='noindex'>";
}
这样更好,因为strpos比strstr快