2015-12-01 90 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