在下面的代码中:
<a href="http://example.com/yadayada" yada-yadayada="/yada/yadayada/yadayada.php?x=12345&yadayadayasomehtmltagandgiberishtexthere
如何在php中编写一个正则表达式,它将删除x=
之前的所有内容以及&am
之后的所有内容,因此我只会获得值12345
,这只是一个示例,但实际上,它各不相同。
答案 0 :(得分:3)
假设您使用DOMDocument
提取了整个网址:
// $url = '/yadayada?x=12345&y=7890';
parse_str(parse_url($url, PHP_URL_QUERY), $arr);
echo $arr['x'];
另请参阅:parse_url()
parse_str()
答案 1 :(得分:1)
使用匹配数字[0-9]的简单\d
:
$text = '<a href="http://example.com/yadayada" yada-yadayada="/yada/yadayada/yadayada.php?x=12345&yadayadayasomehtmltagandgiberishtexthere';
preg_match_all("#x=(\d+)(&|&)#", $text, $match);
print_r($match[1]);//12345
更新:模式已更改为x=(\d+)(&|&)
答案 2 :(得分:0)
好吧我用@Akam和@Herberts帮助解决了它。
preg_match_all(&#34; #x =(\ d +)&amp; amp#&#34;,$ url,$ match); 的print_r($匹配[1]);
谢谢你们!