PHP rtrim“.php”

时间:2013-10-20 03:27:26

标签: php

我想从字符串末尾删除“.php”(如果存在)。考虑一下:

$filename = 'index';
rtrim($filename,".php");//returns "index"

$filename = 'search';
rtrim($filename,".php");//returns "searc"

为什么会这样?我觉得它与字母'h'结尾有关 - 'h'在rtrim的字符串中。所以我尝试了一个正则表达式(.php$),看它是否有所不同,但事实并非如此。

3 个答案:

答案 0 :(得分:8)

rtrim接受字符列表作为第二个参数,因此在这种情况下,它不仅会修剪.php扩展名,还会修剪任何.

,在字符串的其余部分找到ph个字符。

尝试使用preg_replace("/(.+)\.php$/", "$1", $filename);代替basename($filename, '.php'),如果您在服务器上有文件,而不只是字符串。

答案 1 :(得分:2)

rtrim的第二个参数是一个包含字符列表的字符串。在这种情况下,它将剥离任何P,H和。在你的字符串中,所以返回searc。

答案 2 :(得分:1)

如果您只是想删除扩展程序,为什么不使用它:     $ filename ='index.php';     $ name = strstr($ filename,'。',true);