-6

我需要从传递的 URL 中解析产品 ID。URL 的长度不确定,因此产品 ID。URL 可能像

http://<hostname>/p/Brand-Product-Name-6118-161-1-gallery.jpg

或者

http://<hostname>/p/Brand-Product-Name-165-7128-12-gallery.jpg

在任何情况下我都想要中间数值,即(161和7128)。我的编程语言是 PHP。

4

1 回答 1

1
<?php

$url = "http://<hostname>/p/Brand-Product-Name-6118-161-1-gallery.jpg";

preg_match_all('#(\d+)-(\d+)-\d+-gallery\.jpg$#',$url,$matches);
// Depends on how accurate you want to be. You can go with many choices like:
// preg_match_all('#http\://.*?/p/.*?(\d+)-(\d+)-\d+-.*\.jpg#',$url,$matches);

var_dump($matches);

/*
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(22) "6118-161-1-gallery.jpg"
  }
  [1]=>
  array(1) {
    [0]=>
    string(4) "6118"
  }
  [2]=>
  array(1) {
    [0]=>
    string(3) "161"
  }
}
*/
于 2013-05-27T09:29:33.373 回答