$image= "some-name-of-my-image-640x480-123.jpg"
我需要提取640x480
并123
.
现在对我有用的是:
list($dirname, $basename, $extension, $filename) = array_values(pathinfo($image));
$new = substr($filename, 0, strrpos($filename, '-')); //some-name-of-my-image-640x480
$post_id = substr($filename, strrpos($filename, '-')+1); //123
$resolution = substr($new, strrpos($new, '-')+1); //640x480
有没有更简单(更聪明(的东西来完成同样的事情?
对于任何对正则表达式和 PHP 过敏的人>= 5.2.0:
$data = array_slice(explode('-', pathinfo($image, PATHINFO_FILENAME)), -2);
在$data
中,您将获得:
Array
(
[0] => 640x480
[1] => 123
)
您可以使用
以下正则表达式: ([0-9]+)x([0-9]+)-([0-9]+)
或者,正如评论中所建议的:('d+)x('d+)-('d+)
要解析名称,请执行以下操作:
preg_match("/('d+)x('d+)-('d+)/", $file_name, $data);
在$data
,您将获得:
Array
(
[0] => 640x480-123
[1] => 640
[2] => 480
[3] => 123
)