可能重复:
How remove extension from string (only real extension!)
我是php的新手,还有很多需要学习的东西!我正在为King County Iris Society网站试验MiniGal Nano。它可以很好地用于我们的目的,只有一个小例外:照片文件名称需要在缩略图下可见。我创建了一个解决方案,但它显示了扩展。我找到了函数的代码示例,但不知道如何将它们合并到现有代码中。非常感谢任何帮助。
示例链接:http://www.kcis.org/kcisphotogallery.php?dir=Iris.Japanese
非常感谢!
答案 0 :(得分:30)
有几种方法可以做到,但我认为其中一种更快捷的方法是以下
// $filename has the file name you have under the picture
$temp = explode('.', $filename);
$ext = array_pop($temp);
$name = implode('.', $temp);
另一种解决方案就是这样。我没有对它进行测试,但看起来它应该在文件名中的多个句点中起作用
$name = substr($filename, 0, (strlen($filename))-(strlen(strrchr($filename, '.'))));
此外:
$info = pathinfo($filename);
$name = $info['filename'];
$ext = $info['extension'];
// Shorter
$name = pathinfo($file, PATHINFO_FILENAME);
// Or in PHP 5.4
$name = pathinfo($filename)['filename'];
在所有这些中,$name
包含没有扩展名
答案 1 :(得分:7)
您可以使用pathinfo()
。
<?php
// your file
$file = 'image.jpg';
$info = pathinfo($file);
// from PHP 5.2.0 :
$file_name = $info['filename'];
// before PHP 5.2.0 :
// $file_name = basename($file,'.'.$info['extension']);
echo $file_name; // outputs 'image'
?>
答案 2 :(得分:3)
如果您确定文件扩展名总是长达四个字符(例如“.jpg”),则只需使用substr()
输出文件名:
echo substr($filename, 0, -4);
如果文件扩展名中有可能包含更多或更少字符的图像(例如“.jpeg”),则需要找出上一个句点的位置。由于您从第一个字符输出文件名,因此该句点的位置可用于指示您要显示的字符数:
$period_position = strrpos($filename, ".");
echo substr($filename, 0, $period_position);
有关这些功能的信息,请查看http://php.net/substr和http://php.net/strrpos上的PHP手册。