1

我想"/info"在网址末尾添加。如果"/info"已经存在,我想保持原样。

我目前正在使用:

if(strpos($url, "/info") === false){
    $url .= "/info";
}

但是上面的代码只有在 url 结尾不包含"/"的情况下才有效。

例如:如果 url 是http://www.domain.com那么它工作得很好,输出是http://www.domain.com/info. 如果 url 是http://www.domain.com/那么它显示http://www.domain.com//info.

如何避免这种情况?

4

3 回答 3

3

修剪域,然后检查最后五个字符(以防“/info”字符串出现在 URL 的其他位置)。

$url = rtrim($url,'/');
if(substr($url,-5)!='/info') $url .= '/info';
于 2012-12-05T20:27:57.367 回答
1

你只需要考虑到这一点。

if(substr($url, -5) != '/info') {
  if(substr($url, -1) == "/")
      $url.="info";
  else
      $url.="/info";
}

注意我将第一个修改if为仅'/info'在 url 末尾检查;正如加雷斯所做的那样;)

于 2012-12-05T20:24:42.650 回答
1

考虑以下网址: http: //www.domain.com/info/test/

如果你strpos以这种方式使用,你会得到错误的结果。相反,您可以使用 substr 和 rtrim :

$url = (substr($url,-5) != '/info') ? rtrim($url, "/") . '/info' : $url;
于 2012-12-05T20:33:56.953 回答