当我调用http_get它永远不会返回时,我的WEB页面就会停止输出。目标网址永远不会收到请求。
<?php //simplest test of http_get I could make
print "http://kayaker.net/php/image.php?id=ORCS084144<br>";
http_get ("http://kayaker.net/php/image.php?id=ORCS084144");
print "<br>back from http_get<br>";
?>
原始脚本在循环中调用http_get
以将数据发送到另一台服务器上的其他几个进程
循环在第一次调用http_get
时停止。我试过调用flush();每行打印后,都没有喜悦。我尝试在$options
参数中设置更长的超时时间到http_get
,这没有用。我尝试在第一个参数中使用http_request
调用HTTP_METH_GET
,同样的问题。
这个皮划艇网址不是原始网址,只是一个仍然失败的简短示例。我拿了一个原始网址并将其粘贴到我的浏览器地址行,它运行正常。我将一些原始URL粘贴到另一种脚本语言(Open Simulator上的LSL中的llHTTPRequest函数),它们可以从那里正常工作。
我将程序存储在at a location上方,您可以在浏览器中运行该程序并查看其失败 我将上面的程序的URL粘贴到另一种脚本语言,并至少返回错误状态(500)和消息“内部服务器错误”,这可能只是意味着测试程序没有正确终止。
我必须做一些非常简单的事情,基本上是错误的 但它是什么?
答案 0 :(得分:0)
<强>问题强>
您似乎没有安装正确的软件包(PECL pecl_http&gt; = 0.1.0)。
Fatal error: Call to undefined function http_get() in [snip] on line 8
<强>解决方案强>
你可以
按the documentation中所述安装pecl_http。
使用评论中提到的其他功能(file_get_contents,curl)
答案 1 :(得分:0)
感谢上面的评论以及我的WEB托管公司令人惊讶的帮助人员,我能够编写以下功能:
function http_get($url)
{
$ch = curl_init(); // initialize curl handle
curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, 3); // times out after 4s
$result = curl_exec($ch); // run the whole process
curl_close($ch);
return($result);
} //http_get
这适用于许多不同的URL,但在某些服务器上失败了,我希望通过玩我可以让它在那里工作的选项。