如何定义字符串的结尾

时间:2012-12-05 20:20:47

标签: php

我想在网址末尾添加"/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

如何避免这种情况?

3 个答案:

答案 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;