我正在查看Google在PHP中的CURL结果,现在有时会导致使用此格式的重定向:
Please click <a href="https://www.google.com/search?q=site:test.com//&gbv=1&sei=vGn6UobNMaqssQTo4IHoDA">here</a> if you are not redirected
如何检查这是否在名为$ result的变量中,然后使用PHP获取链接href中的URL?
答案 0 :(得分:0)
使用DomDocument
解析HTML并提取网址。请注意,如果您使用的脚本与要求提供数据的服务器的ToS相反,则可能会产生法律和财务后果。
我正在使用strpos
在提交资源之前快速检查我需要解析页面的提示。
if (strpos($result, 'if you are not redirected') !== false) {
$doc = new DOMDocument();
@$doc->loadHTML($result);
$newUrl = $doc->getElementsByTagName('a')->item(0)->getAttribute('href');
// new request using $newUrl
}
文档
strpos
- http://php.net/strpos DomDocument
- http://php.net/manual/en/class.domdocument.php DomElement
- http://www.php.net/manual/en/class.domelement.php DomElement::getAttribute
- http://www.php.net/manual/en/domelement.getattribute.php 答案 1 :(得分:-1)
if(isset($result )){
$url = preg_replace('/.*Please click <a href="([^"]*)".*/', "$1", $result );
print $url;
}
或
if(isset($result ) && preg_match('/Please click <a href="([^"]*)"/', $result, $m )){
print $m[1];
}