如果字符串存在,我想从字符串的末尾删除".php“。考虑到这一点:
$filename = 'index';
rtrim($filename,".php");//returns "index"
$filename = 'search';
rtrim($filename,".php");//returns "searc"为什么会发生这种情况?我觉得这跟字母“h”-“h”在字符串中的关系有关。因此,我尝试了一个正则表达式(.php$),看看它是否产生了影响,但它没有。
发布于 2013-10-20 03:29:13
rtrim接受一个字符列表()作为第二个参数,因此在本例中,它不仅会修剪.php扩展,而且还会修剪字符串其余部分中的任何.、p或h字符。
如果服务器上有文件,则尝试使用preg_replace("/(.+)\.php$/", "$1", $filename);,或者使用basename($filename, '.php'),而不仅仅是在字符串中。
发布于 2013-10-20 03:30:27
rtrim的第二个参数是一个字符串,其中包含一个字符列表。在这种情况下,它将去掉任何P,H,和。在你的字符串中,所以返回搜索。
发布于 2013-10-20 03:32:45
如果您只是试图删除扩展,为什么不使用以下内容:$filename = 'index.php';$name = strstr($filename,'.',true);
https://stackoverflow.com/questions/19473603
复制相似问题