4

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

$filename=“索引”;rtrim($filename,“.php”)//返回“索引”$filename=“搜索”;rtrim($filename,“.php”)//返回“searc”

为什么会发生这种情况?我觉得这与rtrim字符串中的字母“h”-“h”结尾有关。所以我尝试了一个正则表达式(.php文件$)看看它是否有所不同,但没有。

1
  • 使用basename($filename,'.php')或者使用pathname()函数 评论 2013年10月20日3:31

3个答案

重置为默认值
9

rtrim公司接受字符列表作为第二个参数,因此在本例中,它不仅会修剪.php文件扩展,但任何.,第页,或小时字符串其余部分中找到的字符。

尝试使用preg_replace(“/(.+)\.php$/”,“$1”,$filename);相反,或basename($filename,'.php')如果文件在服务器上,而不仅仅是字符串中。

1
  • 1
    谢谢。我对我通常用于空白的rtrim的误解。谢谢你多跑了一英里,给了我preg_replace。
    – 若奥
    评论 2013年10月20日3:46
2

的第二个参数rtrim公司是包含字符列表的字符串。在这种情况下,它将去除任何P、H和。在你的琴弦上,所以返回西尔克。

1

如果你只是想删除扩展名,为什么不使用这个:$filename='index.php';$name=strstr($filename,'.',true);

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.