我使用刮刀从结果网络中获取href,我得到了这个:
href="/url?q=https://signup.euw.leagueoflegends.com/fr/signup/index%3Frealm_key%3Deuw&sa=U&ved=0ahUKEwiuzqft5trSAhXBPRoKHbpXDMUQjBAIHjAD&usg=AFQjCNEYfGG0WY7wMdmBC-sxVjOWeUliXg"
/url?q=https://signup.euw.leagueoflegends.com/fr/signup/index%3Frealm_key%3Deuw&sa=U&ved=0ahUKEwiuzqft5trSAhXBPRoKHbpXDMUQjBAIHjAD&usg=AFQjCNEYfGG0WY7wMdmBC-sxVjOWeUliXg
href="/url?q=http://euw.leagueoflegends.com/fr/news/&sa=U&ved=0ahUKEwiuzqft5trSAhXBPRoKHbpXDMUQjBAIIDAC&usg=AFQjCNExC7Mbonp2YirFtmf4gMFAjvA03A"
...
我只得到了这个:
preg_match("/href=\"(.*?)\"/i", $test, $matches);
但我不知道如何在“/ url?q”和“& amp”之间只获取网址
我试过这样但是不起作用我没有结果:
preg_match("/href=/url?q\"(.*?)\"/i", $test, $matches);
答案 0 :(得分:1)
或许最好获取href,然后将URL明确解析为:
<?php
$s = '/url?q=http://euw.leagueoflegends.com/fr/news/&sa=U&ved=0ahUKEwiuzqft5trSAhXBPRoKHbpXDMUQjBAIIDAC&usg=AFQjCNExC7Mb';
$arr = array();
//first, get the query string
$qs = parse_url(html_entity_decode($s));
//parse query string and isolate the parameter 'q'
parse_str($qs['query'], $arr);
print($arr['q']);
?>
这会产生http://euw.leagueoflegends.com/fr/news/
答案 1 :(得分:1)
这应该可以解决问题
preg_match(&#34; / href = \&#34; \ / url \?q \ =(。*)\&#34; / i&#34;,$ test,$ matches);
答案 2 :(得分:1)
工作正常
<?php
$url='href="/url?q=https://signup.euw.leagueoflegends.com/fr/signup/index%3Frealm_key%3Deuw&sa=U&ved=0ahUKEwiuzqft5trSAhXBPRoKHbpXDMUQjBAIHjAD&usg=AFQjCNEYfGG0WY7wMdmBC-sxVjOWeUliXg"';
preg_match('/href="(.*)"/', $url, $matches);
print_r($matches[1]);
?>