我正在寻找一个小的功能,该功能允许我从文件名中删除扩展名。
我通过谷歌搜索发现了许多示例,但是它们很糟糕,因为它们只是用“。”删除了字符串的一部分。。他们使用点作为限制器,只是剪切字符串。
看这些脚本,
$from = preg_replace('/\.[^.]+$/','',$from);
要么
$from=substr($from, 0, (strlen ($from)) - (strlen (strrchr($filename,'.'))));
当我们添加这样的字符串时:
这是字符串的例子
它将仅返回“ This” …
该扩展名可以包含3个或4个字符,因此我们必须检查点是否位于4或5个位置,然后将其删除。
怎么做到呢?
试试这个:
$withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename);
因此,它匹配一个点,后跟三个或四个不是点或空格的字符。“ 3或4”规则可能应该放宽,因为存在许多较短或较长的文件扩展名。