我正在尝试制作一种许可检查脚本,但并非所有主机都允许curl_exec
,我想知道,是否有其他方式可以进行回叫?
这是我用curl做的方式:
curl_setopt($ch, CURLOPT_URL, $url."/my_script.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $info);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
答案 0 :(得分:2)
您可以切换curl_multi_exec
,但也可能已停用。
或者,使用HTTP stream wrapper。要配置POST请求,您需要设置自己的HTTP context。
答案 1 :(得分:2)
您只需将file_get_contents()
与网址一起使用:
file_get_contents('http://www.google.com');
但是,仅使用简单的INI选项allow_url_fopen
即可禁用此功能。
或者,您可以使用fsockopen()
,这应该在大多数系统上都可用。
使用fsockopen()
,您可以打开到HTTP服务器的套接字,然后使用标准fwrite()
和fread()
进行通信。缺点是您必须自己编写HTTP请求标头,并且还必须解析HTTP响应标头。如果你看看PHP手册上的fsockopen()
,你可以看到很多例子:http://fr2.php.net/fsockopen
我的建议是使用cURL作为主要选项,将file_get_contents()作为辅助选项(如果ini_get('allow_url_fopen')
返回肯定结果)并实施fsockopen()
之类的解决方案作为后备。