PHP正则表达式帮助,获得链接的一部分

时间:2010-10-24 02:49:37

标签: php regex

我正在尝试在像

这样的行中编写一个正则表达式
 <a href="mypage.php?(some junk)&p=12345&(other junk)" other link stuff>Text</a>

它只会返回“p = 12345”,甚至“12345”。注意(一些垃圾)&amp;并且&amp;(otherjunk)可能存在也可能不存在。 我可以用一个表达式执行此操作,还是需要多个表达式?我似乎无法弄清楚如何在一个方面做到这一点,如果可能的话,这就是我想要的。如果你有建议,我也会接受其他方法。

由于

2 个答案:

答案 0 :(得分:2)

在这种情况下使用常规expressoin的一个更好的策略是使用parse_url

您可以使用它来获取查询(在您的网址中的?后面的内容)并在“&amp;”上拆分字符,然后'='把东西放进一本好词典。

答案 1 :(得分:1)

使用parse_urlparse_str

$url = 'mypage.php?(some junk)&p=12345&(other junk)';
$parsed_url = parse_url($url);
parse_str($parsed_url['query'], $parsed_str);
echo $parsed_str['p'];