网址的Preg_Match部分

时间:2015-12-14 11:01:57

标签: php regex preg-replace preg-match

我正在尝试匹配可以通过几种方式输入的网址。

网址是iTunes链接,我正在尝试从网址中获取id

我想知道是否可以使用id#########除了str_replace之外的所有内容,然后使用if( THE STRING IS NOT EMPTY ) { if( THERE ARE MATCHES IN THE PREG_MATCH ) { $VAR = $MATCHES; } if( THERE ARE NO MATCHES IN THE PREG_MATCH ) { $VAR = $ORIGINAL_STRING; } } 删除ID。

我从这里开始:http://www.phpliveregex.com/p/dWp但不是表达方面的专家。

以上网址的要点是,如果它已经从iTunes网址和ID中删除,是否有办法将其存储在数组中?

或者有办法说:

{{1}}

2 个答案:

答案 0 :(得分:1)

你不需要使用正则表达式,因为有一个PHP函数来解析URL(parse_url),因为你已经知道url的最后一个目录中有一个id(换句话说,你不要不需要检查格式:

$path = parse_url($url, PHP_URL_PATH);
$lastdir = array_pop(explode('/', $path));
$result = ltrim($lastdir, 'id');

demo

答案 1 :(得分:0)

如果您提供了一个URL示例,那会很有帮助,但是......听起来您想要做这样的事情:

$subject = 'http://foo.bar/baz/id1234567890/yah';
$pattern = '/id(\d+)/';
preg_match($pattern, $subject, $matches);

如果在这种情况下使用print_r显示数组:

print_r($matches);

它会显示:

Array
(
    [0] => id1234567890
    [1] => 1234567890
)