PHP剪切文件名的最后几个字符

时间:2010-11-14 08:21:39

标签: php

我正在从数据库中检索文件位置和名称,采用这种格式

http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main-150x150.jpg

它们都是动态的,所以有数百个都有不同的名称,但有一件事是不变的是最后一个 - 然后是文件尺寸。

我需要做的是在最后一次之后剥离所有东西 - 所以它变成了以下内容。

http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main.jpg

任何帮助都会很棒。

干杯,

3 个答案:

答案 0 :(得分:1)

$stringName = "picimage-niceone_Main-150x150.jpg";
$newName = substr($stringName,0,strrpos($stringName,"-")).substr($stringName,-4);

这将删除最后-和文件扩展名之间的任何内容。

答案 1 :(得分:1)

查看preg_replace()

$url = preg_replace('/\-(\d+)x(\d+)(\.\w+)$/', '$3', $url);

即。找到连字符,数字,'x',数字和扩展名,并用扩展名替换整个事物。

或者,如果您确实想知道这些宽度和高度值是什么(例如填充<IMG>标记属性:

$url = 'http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main-150x150.jpg';
$regex = '/(.*?)-(\d+)x(\d+)(\.\w+)$/';
if (preg_match($regex, $url, $matches)) {
  $width = $matches[2];
  $height = $matches[3];
  $url = $matches[1] . $matches[4];
}

答案 2 :(得分:0)

$newname = preg_replace("/-[^-.]*(\\.[a-zA-Z]*)$/", '$1', $oldname);