我想在网址末尾添加"/info"
。如果"/info"
已经存在,我想保持原样。
我目前正在使用:
if(strpos($url, "/info") === false){
$url .= "/info";
}
但上述代码仅在网址末尾不包含"/"
时才有效。
例如:如果网址为http://www.domain.com
,那么它可以正常运行,输出为http://www.domain.com/info
。如果网址为http://www.domain.com/
,则会显示http://www.domain.com//info
。
如何避免这种情况?
答案 0 :(得分:3)
修剪域名,然后检查最后五个字符(如果“/ info”字符串出现在URL的其他位置)。
$url = rtrim($url,'/');
if(substr($url,-5)!='/info') $url .= '/info';
答案 1 :(得分:1)
你只需要考虑到这一点。
if(substr($url, -5) != '/info') {
if(substr($url, -1) == "/")
$url.="info";
else
$url.="/info";
}
注意我修改了第一个if
,仅检查网址末尾的'/info'
;正如加雷斯所做的那样;)
答案 2 :(得分:1)
考虑以下网址: http://www.domain.com/info/test/
如果你以这种方式使用strpos
,你会得到错误的结果。
相反,你可以使用substr和rtrim:
$url = (substr($url,-5) != '/info') ? rtrim($url, "/") . '/info' : $url;