PHP - 获取这些值的更好方法


PHP - A better way to get these values?

$image= "some-name-of-my-image-640x480-123.jpg"

我需要提取640x480123.

现在对我有用的是:

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
)