PHP DOMDocument-我的“真实”文档URI是什么?

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/'); 我有时会被网站重定向,例如,谷歌可能会将我重定向到特定国家的域名。问题: 如何防止被重定向?我想明确说明我要解析的页面,而不是发送到另一个页面。我不需要使用

我正在尝试做一些HTML DOM解析。我正在进行的解析取决于页面的URI。问题是,当我加载HTML文件时,如下所示:

// 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;
        }