【问题标题】:PHP - A better way to get these values?PHP - 获取这些值的更好方法?
【发布时间】:2013-11-17 10:10:45
【问题描述】:
$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 regex substr


    【解决方案1】:

    对于任何对正则表达式和 PHP >= 5.2.0 过敏的人:

    $data = array_slice(explode('-', pathinfo($image, PATHINFO_FILENAME)), -2);     
    

    $data 你会得到:

    Array
    (
        [0] => 640x480
        [1] => 123
    )
    

    【讨论】:

      【解决方案2】:

      您可以使用以下正则表达式:([0-9]+)x([0-9]+)-([0-9]+)

      或者,按照 cmets 中的建议:(\d+)x(\d+)-(\d+)

      解析名称:

      preg_match("/(\d+)x(\d+)-(\d+)/", $file_name, $data);

      $data 你会得到:

      Array
      (
          [0] => 640x480-123
          [1] => 640
          [2] => 480
          [3] => 123
      )

      【讨论】:

      • [0-9] 可以替换为\d
      猜你喜欢
      • 1970-01-01
      • 2015-04-24
      • 2021-07-05
      • 2021-10-03
      • 2019-05-14
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多