2015-12-01 50 views
-1

我正在收集一系列URL,我使用rtrim函数从URL的末尾删除'index.html'。偶尔RTRIM但是除去超过预期,例如:PHP:'rtrim'函数的意外结果

我的网址:www.bikes.com/bike-accessories/hydration/index.html

使用此功能,其中$路径总之包含URL的字符串:

$path_short = rtrim($path_short, '/index.html'); 

我留下:www.bikes.com/bike-accessories/hydratio

没有人知道这可能是为什么?

+1

RTRIM与character__的__list的作品,它不是简单地去除结束一个固定的字符串,但个别字符'/'或'i'或每个实例'n'或'd'或'e'或'x'或'.'等..... [RTFM](http://www.php.net/manual/en/function.trim.php) –

+0

我正在投票结束这个问题作为题外话,因为它只是一个海报的情况下没有阅读文档 –

+0

啊我看,什么是最好的解决方案,以实现我希望在这里的结果? –

回答

2

发生这种情况是因为rtrim从字符串末尾剥去了空格(或其他字符)。它将所有字符分开,而不是一个字。您在index.html中提到n,因此hydration从右侧丢失了一个n,只剩下hydratio

使用pathinfo()函数代替如下所示。

$pathInfo = pathinfo('www.bikes.com/bike-accessories/hydration/index.html');

$pathInfo['dirname']会给www.bikes.com/bike-accessories/hydration

+0

非常好的答案 – LOKESH