我有这个图像名称:very-nice-rose-123-3.jpg
我怎样才能将其切成几部分,并仅接收最后一个破折号和图像扩展之间的部分。我需要在这个例子中得到3
。
你可以使用字符串函数,如explode()
、substr()
等。
$file = explode('.', $file);
$file = explode('-', $file[0]);
echo end($file);
演示
或者您可以使用正则表达式:
if (preg_match('~-?('w+)'.'w+$~', $file, $match)) {
echo $match[1];
}
演示
我这样做的方式通常是:
<?php
$num = strrev(
explode(
'-',
strrev($filename),
2
)[0]
);
Docs for strrev() 和 explode()。
通过正则表达式。
if (preg_match('~(?<=-)[^-.]+(?='.[a-z]+$)~', $file, $match)) {
echo $match[0];
}
或
if (preg_match('~-([^-.]+)'.[a-z]+$~', $file, $match)) {
echo $match[0];
}
演示