PHP DOMDocument-我的“真实”文档URI是什么?
我正在尝试做一些HTML DOM解析。我正在进行的解析取决于页面的URI。问题是,当我加载HTML文件时,如下所示:PHP DOMDocument-我的“真实”文档URI是什么?,php,domdocument,dom,Php,Domdocument,Dom,我正在尝试做一些HTML DOM解析。我正在进行的解析取决于页面的URI。问题是,当我加载HTML文件时,如下所示: // Creat HTML DOM $dom_document = new DOMDocument(); @$dom_document->loadHTMLFile('http://www.google.com/'); 我有时会被网站重定向,例如,谷歌可能会将我重定向到特定国家的域名。问题: 如何防止被重定向?我想明确说明我要解析的页面,而不是发送到另一个页面。我不需要使用
// Creat HTML DOM
$dom_document = new DOMDocument();
@$dom_document->loadHTMLFile('http://www.google.com/');
我有时会被网站重定向,例如,谷歌可能会将我重定向到特定国家的域名。问题:
如何防止被重定向?我想明确说明我要解析的页面,而不是发送到另一个页面。我不需要使用DOMDocument。
如果没有办法防止被重定向,那么至少有办法知道我被发送到的URI是什么吗?
编辑1:
答案是肯定的,但不使用loadHTMLFile 如果可以,请使用curl。它提供了更详细的重定向控制 使用它获取内容,并使用loadHTML将它们导入到您的DOMDocument中 见例
请参见编辑1。我已经决定要阻止重定向。因此,我将FOLLOWLOCATION设置为FALSE。现在的问题是,当我尝试转到时,它试图重定向我,但旋度阻止了它,现在我什么也得不到。你看到我的代码有什么问题了吗?这就是我得到的:string80@StackOverflowEWBIE你希望得到什么?如果您想要.com页面,最好使用浏览器访问该网站,并查看明确的地址。您可能需要设置cookie或某些特定参数来获取.com页面。
function get_html_content($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE); // not good for 301 redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
// Check if any error occured
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
assert(FALSE);
die();
}
curl_close($ch);
return $data;
}