删除文件中的最后3个字符(文件扩展名)
我的文件名正在存储在一个变量中$ file_name ...我怎样才能删除扩展名,只有名称而已?有没有比其他的strcmp,我可以使用的东西...这似乎并没有做到这一点删除文件中的最后3个字符(文件扩展名)
使用pathinfo。
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
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
?>
注意:如果你不是在PHP> = 5.2使用此来组成名
$path_parts['filename'] = substr($path_parts['basename'], 0, -1*strlen($path_parts['extension'])-1);
我用:
$file_name = current(explode(".", $file_name));
是更好地使用这种 – 2010-12-13 09:32:18
那么什么用,如文件名的' foo.bar.txt'? – Joey 2010-12-13 09:33:18
这会给你任何东西,直到第一个'.'。 “my.strange.path/i.like.dots.php”会发生什么? – 2010-12-13 09:34:19
你应该看看pathinfo()
功能。
@Salman答:究竟是什么对我发布的链接这么无礼?哪个镜像链接是否真的很重要? – AgentConundrum 2010-12-13 09:36:01
我已经恢复了更改。 – 2010-12-13 09:45:02
@Salman:我自己可以做到这一点。我只是想知道*为什么*你认为有必要。 – AgentConundrum 2010-12-13 09:57:23
你可以这样做:
$file_name_no_ext = pathinfo($file_name , PATHINFO_FILENAME);
类似@fire,但更强大的面对多重点:
$comps = explode('.', $filename);
unset($comps[count($comps) - 1]);
$ext = implode('.', $comps);
+1为内置功能,而不是更复杂和容易出错的替代方案 – 2010-12-13 09:35:49