我正在尝试匹配可以通过几种方式输入的网址。
网址是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}}
答案 0 :(得分:1)
你不需要使用正则表达式,因为有一个PHP函数来解析URL(parse_url
),因为你已经知道url的最后一个目录中有一个id(换句话说,你不要不需要检查格式:
$path = parse_url($url, PHP_URL_PATH);
$lastdir = array_pop(explode('/', $path));
$result = ltrim($lastdir, 'id');
答案 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
)