为了账号安全,请及时绑定邮箱和手机立即绑定

如何从字符串中删除扩展名(仅实际扩展名!)

如何从字符串中删除扩展名(仅实际扩展名!)

PHP
小怪兽爱吃肉 2019-12-25 14:19:10
我正在寻找一个小的功能,该功能允许我从文件名中删除扩展名。我通过谷歌搜索发现了许多示例,但是它们很糟糕,因为它们只是用“。”删除了字符串的一部分。。他们使用点作为限制器,只是剪切字符串。看这些脚本,$from = preg_replace('/\.[^.]+$/','',$from);要么 $from=substr($from, 0, (strlen ($from)) - (strlen (strrchr($filename,'.'))));当我们添加这样的字符串时:这是字符串的例子它将仅返回“ This” ...该扩展名可以包含3个或4个字符,因此我们必须检查点是否位于4或5个位置,然后将其删除。怎么做到呢?
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

试试这个:


$withoutExt = preg_replace('/\\.[^.\\s]{3,4}$/', '', $filename);

因此,它匹配一个点,后跟三个或四个不是点或空格的字符。“ 3或4”规则可能应该放宽,因为存在许多较短或较长的文件扩展名。


查看完整回答
反对 回复 2019-12-25
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

在手册中,pathinfo:


<?php

    $path_parts = pathinfo('/www/htdocs/index.html');


    echo $path_parts['dirname'], "\n";

    echo $path_parts['basename'], "\n";

    echo $path_parts['extension'], "\n";

    echo $path_parts['filename'], "\n"; // Since PHP 5.2.0

?>

它不一定是正常运行的完整路径。它将就像愉快地分析file.jpg的/path/to/my/file.jpg。


查看完整回答
反对 回复 2019-12-25
  • 3 回答
  • 0 关注
  • 906 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信