也许这是一个简单的问题,但我没有在网上找到答案。
我的远程脚本在我打开时起作用
http://www.example.com/do_it.php
我无法包含它,导致此页面可能会产生致命错误,可能需要很长时间才能加载。
我需要以最快和最简单的方式从php加载该页面。
现在我正在做
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,$withReturn);
$execute = curl_exec($ch);
但是这个脚本会得到响应,因此它会比只返回标题的脚本花费更多的时间,或者不返回任何内容。
这是更好的方法吗?
如果它有助于do_it.php
在我需要调用它的同一台服务器上。
答案 0 :(得分:2)
我认为执行请求而不是等待响应的可能解决方案是使用php.net/curl_multi_exec然后避免解析响应。另一种方法是使用套接字,打开与脚本的连接,写入请求然后关闭连接而不准备响应。
示例curl脚本: https://github.com/vrana/php-async/blob/master/CurlAsync.php
套接字方法的示例用法:
$fp = fsockopen('example.com', 80, $errno, $errstr, 30);
$out = "GET /do_it.php HTTP/1.1\r\n";
$out.= "Host: example.com\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
fclose($fp);
以上示例未经测试,并作为起点提供。
答案 1 :(得分:1)
最快的方法是检查所有方法。有
CURL - curl_exec()
套接字 - fsockopen()
如果您只想下载该do_it.php页面的响应,请使用get_file_contents()。