当前位置: 首页 > 知识库问答 >
问题:

PHP curl不工作,返回空页面,我怎么能模拟真正的浏览器

徐佐
2023-03-14

我想从一个网站获取一些详细信息,我的代码在wampserver中运行良好,但是当我将文件上传到一个真正的服务器上时,我没有得到任何结果,它会显示一个空白页面,这是我的代码。

    <?php 
error_reporting(E_ALL);

$htm = my_curl($url);
echo $htm;
$dat = file_get_contents('cookies.txt');

echo "<pre>";
echo PHP_EOL . "<b>$url</b>";
echo PHP_EOL . "<i>$dat</i>";
echo PHP_EOL;


function my_curl( $url, $timeout=5, $error_report=TRUE)
{
    $curl = curl_init();


    $header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
    $header[] = "Cache-Control: max-age=0";
    $header[] = "Connection: keep-alive";
    $header[] = "Keep-Alive: timeout=5, max=100";
    $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
    $header[] = "Accept-Language: en-us,en;q=0.5";
    $header[] = ""; // BROWSERS USUALLY LEAVE BLANK

    // SET THE CURL OPTIONS - SEE http://php.net/manual/en/function.curl-setopt.php
    curl_setopt( $curl, CURLOPT_URL,            $url  );
    curl_setopt( $curl, CURLOPT_USERAGENT,      'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'  );
    curl_setopt( $curl, CURLOPT_HTTPHEADER,     $header  );
    curl_setopt( $curl, CURLOPT_REFERER,        'http://www.google.com'  );
    curl_setopt( $curl, CURLOPT_ENCODING,       'gzip,deflate'  );
    curl_setopt( $curl, CURLOPT_AUTOREFERER,    TRUE  );
    curl_setopt( $curl, CURLOPT_RETURNTRANSFER, TRUE  );
    curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, TRUE  );
    curl_setopt( $curl, CURLOPT_COOKIEFILE,     'cookies.txt' );
    curl_setopt( $curl, CURLOPT_COOKIEJAR,      'cookies.txt' );
    curl_setopt( $curl, CURLOPT_TIMEOUT,        $timeout  );


    $htm = curl_exec($curl);

    // ON FAILURE HANDLE ERROR MESSAGE
    if ($htm === FALSE)
    {   echo 'HELO';
        if ($error_report)
        {echo 'HELOs';
            $err = curl_errno($curl);
            $inf = curl_getinfo($curl);
            echo "CURL FAIL: $url TIMEOUT=$timeout, CURL_ERRNO=$err";
            var_dump($inf);
        }
        curl_close($curl);
        return FALSE;
    }

    // ON SUCCESS RETURN XML / HTML STRING
    curl_close($curl);
    return $htm;
}

我已经检查了我的php配置一切似乎都没问题。我在堆栈溢出的任何其他相关帖子中找不到任何答案。

错误:

卷曲失败:http://14.139.236.46:7001/Forms/Student/PrintReportCard.aspx?rollno=11013001027

共有2个答案

盛建德
2023-03-14

尝试分别设置端口。

curl_setopt($ch,CURLOPT_端口,7001)

况弘新
2023-03-14

我认为你的网址是无效的-目前你的网址是这样的:

http://14.139.236.46:7001/Forms/Student/PrintReportCard.aspxrollno=123&sem=456

虽然我认为应该是:

http://14.139.236.46:7001/Forms/Student/PrintReportCard.aspx?rollno=123&sem=456

添加?在aspx和rollno之间,然后重试

 类似资料:
  • 我已经在我的系统中安装了Gzip代码。htaccess文件还可以从选项中启用它。php,但它没有显示效果。我已签入检查

  • 我在localhost中有一个wamp服务器。我试图从我的android应用程序发出http请求。但我不能把它弄对。许多人说10.0.2.2:8080将从emulator指向localhost。所以我试着从emulator在web浏览器中打开它。我输入的url是“10.0.2.2/cifi/test.php”。但emulator弹出错误为“网络:连接超时” 需要说明:如何使我的wamp服务器在本地

  • MATLAB工作空间包含内建MATLAB处理任务时以及储存在记忆体中的变量排列。你可以通过使用函数、运行M-文件、装载已存文件等方式增加变量到工作区。 要查看关于每个变量的工作空间和信息,请用工作空间浏览器,或用who和whos函数。 要在工作空间删除一个变量,先选择那个变量,然后从Edit菜单中选择Delete,或者用clear命令。 当你退出MATLAB后,工作空间的内容是不会继续存在的。如果

  • 这个小部件在模拟器4.1.2上工作得很好,当安装在真正的设备上时,它甚至不会显示在小部件列表上,就像安装了一样,但我不能让它正常工作。 下面是manifest.xml 和小部件提供程序

  • 我有一个方法,我需要写单元测试用例。该方法返回类型。

  • 通过Chrome扩展我们可以对用户当前浏览的页面进行操作,实际上就是对用户当前浏览页面的DOM进行操作。通过Manifest中的content_scripts属性可以指定将哪些脚本何时注入到哪些页面中,当用户访问这些页面后,相应脚本即可自动运行,从而对页面DOM进行操作。 Manifest的content_scripts属性值为数组类型,数组的每个元素可以包含matches、exclude_mat