Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript file_get_contents()返回错误的页面_Javascript_Php - Fatal编程技术网

Javascript file_get_contents()返回错误的页面

Javascript file_get_contents()返回错误的页面,javascript,php,Javascript,Php,我正在尝试使用函数文件\u get\u contents$url来获取一些内容。但是它没有返回正确的内容。它只是返回一些脚本,我认为它们负责位置和语言检查,然后它失败,不会继续抓取整个页面 $url = 'https://shop.bitmain.com/'; $exists; $url_headers = get_headers($url); if(!$url_headers || $url_headers[0] == 'HTTP/1.1 404 Not Fou

我正在尝试使用函数文件\u get\u contents$url来获取一些内容。但是它没有返回正确的内容。它只是返回一些脚本,我认为它们负责位置和语言检查,然后它失败,不会继续抓取整个页面

    $url = 'https://shop.bitmain.com/';
    $exists;
    $url_headers = get_headers($url);
    if(!$url_headers || $url_headers[0] == 'HTTP/1.1 404 Not Found') {
        $exists = false;
    }
    else {
        $exists = true;
    }

    if(filter_var($url, FILTER_VALIDATE_URL) == FALSE || $exists == false) {

        $error .= '<div class="alert alert-danger" role="alert">That city could not be found.</div>';

    } else if (filter_var($url, FILTER_VALIDATE_URL) == TRUE && $exists == true){

        $html = file_get_contents($url);
        if ($html != FALSE && $html != NULL) 
            echo $html

        }
当涉及到加载URL内容时,我们将file_get_contents称为哑函数。它将返回第一次加载DOM时显示的内容

要获得许多网站的实际内容,您还需要遵循重定向,这可以通过使用curl实现。请参阅:

如果最后一个页面使用大量AJAX来发布数据,那么即使是curl也不会提供所需的内容,而是一些没有实际内容的裸HTML页面

因此,现在,您需要手动加载异步内容,通过解析初始url的内容、解析JS文件、获取ajax url并在传递目标页面可能为您的请求生成的cookie时再次调用它们

或者使用本机客户端,它将像浏览器一样执行页面,并能够返回最终数据


只需调用file\u get\u contentsurl;而且,如果你在浏览器中调用url,那么期望使用相同的源代码,对于大多数网站来说已经不起作用了。

我认为它得到了正确的内容。该页面显然是一个js web应用程序,当您使用浏览器查看目标页面的源代码时,脚本几乎是您得到的所有内容……抱歉,我编辑了它。是在浏览器中打开url。。。查看源。。。这就是你的PHP将得到的,我看到了,但是原始页面包含了一些数据,也就是产品和它们的价格。我需要这些数据,而不是脚本,这是一个强有力的词。我知道你想要这些信息,但这比一个简单的文件内容要难得多-你必须运行脚本,这是一个完整的应用程序,以便让它以你在浏览器中看到的方式提升。顺便说一句,如果你链接到另一个SO答案,建议你应该投票以重复方式关闭,而不是回答…:@这不是一个重复的问题。链接应该会添加一些想法,为什么尝试的方法在很多情况下不起作用。@dognose感谢您的时间。你认为我应该如何解决这个问题?我试过卷发,可惜没有work@ibrahim.fathy查看我的更新。它高度基于ajax,没有简单的php解决方案。