【问题标题】:remove extension from file [duplicate]从文件中删除扩展名[重复]
【发布时间】:2013-01-07 21:55:48
【问题描述】:

可能重复:
How remove extension from string (only real extension!)

我是 php 新手,还有很多东西要学!我正在为我们的 King County Iris Society 网站试验 MiniGal Nano。它非常适合我们的目的,但有一个小例外:照片文件名需要在缩略图下可见。我已经创建了一个解决方法,但它显示了扩展名。我找到了函数的代码示例,但不知道如何将它们合并到现有代码中。任何帮助将不胜感激。

示例链接:http://www.kcis.org/kcisphotogallery.php?dir=Iris.Japanese

非常感谢!

【问题讨论】:

  • 那么简而言之,您想从脚本名称中删除.php
  • 这取决于您如何定义“扩展”。最后一个点之后的所有内容?任何点之后的一切?等等。您可以使用正则表达式,对子字符串进行一些技巧等。但是您需要在逻辑上定义您要删除的内容。考虑像@​​987654324@ 或some.file.jpg 这样的文件名,甚至只是somefile,根本没有“扩展名”。

标签: php function filenames


【解决方案1】:

有几种方法可以做到这一点,但我认为更快的方法之一是以下

// $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 包含不带扩展名的文件名

【讨论】:

  • 这还不错,但对my.image.jpg没有帮助
  • 为此添加了另一个,当你回复时试图找到它哈哈
  • 也可以先弹出数组的一个元素,然后再加入数组。
  • 感谢您将我指向 pathinfo['filename']!
  • 这段代码对我有用,一旦我弄清楚在哪里使用它! $temp = explode('.', $filename); $ext = array_pop($temp); $name = implode('.', $temp);
【解决方案2】:

您可以为此使用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'

?>

【讨论】:

  • 更常见的做法是只从pathinfo() 函数中询问需要的内容:pathinfo($file, PATHINFO_FILENAME)
【解决方案3】:

如果您确定文件扩展名总是四个字符长(例如“.jpg”),您可以在输出文件名的地方简单地使用substr()

echo substr($filename, 0, -4);

如果文件扩展名中有可能包含更多或更少字符的图像(例如“.jpeg”),您需要找出最后一个句点的位置。由于您从第一个字符开始输出文件名,因此该句点的位置可用于指示您要显示的字符数:

$period_position = strrpos($filename, ".");
echo substr($filename, 0, $period_position);

有关这些函数的信息,请查看位于 http://php.net/substrhttp://php.net/strrpos 的 PHP 手册。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 2014-09-19
    • 2013-03-14
    • 1970-01-01
    相关资源
    最近更新 更多