PHP rtrim".php"

Joa*_*oao 3 php

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

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

$filename = 'search';
rtrim($filename,".php");//returns "searc"
Run Code Online (Sandbox Code Playgroud)

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

jvp*_*rin 8

rtrim接受一个字符列表作为第二个参数,所以在这种情况下,将修剪不只是.php延长,但任何.,ph字符的字符串的其余部分找到.

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