我正在从数据库中检索文件位置和名称,采用这种格式
http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main-150x150.jpg
它们都是动态的,所以有数百个都有不同的名称,但有一件事是不变的是最后一个 - 然后是文件尺寸。
我需要做的是在最后一次之后剥离所有东西 - 所以它变成了以下内容。
http://domain.com/subdir/etc/etc/etc/picimage-niceone_Main.jpg
任何帮助都会很棒。
干杯,
答案 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);