我有一个需要从PHP脚本"调用"的URL。该 URL 使用 Tropo 的 API 进行电话呼叫,因此很容易验证它是否被调用。
我的PHP看起来像这样:
<?php
$oid=$_GET["oid"];
$notify_url = "http://mydomain.com/somepath/".$oid;
echo $notify_url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $notify_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
mail('me@gmail.com', 'cURL', "Did a cURL");
?>
这将打印出 $notify_url 变量,当我获取打印的值并将其输入浏览器窗口时,我得到了所需的结果,即电话呼叫我的手机。
我已经在两个声称支持CURL的网络主机上尝试过这个,一个是付费的(crazydomains.com.ayu - 刚刚挂断电话支持),另一个是 000webhost.com
我做错了什么吗?这个有点令人困惑,因为它应该很简单。
编辑:我按预期收到邮件。
编辑2:如果您对我如何调试它有任何想法,我将不胜感激。
编辑3:正如Juhana建议的那样,我在curl_exec后添加了echo curl_error();
,但出现此错误...
Warning: Wrong parameter count for curl_error() in /home/a5352876/public_html/curl.php on line 15
编辑4:将echo curl_error()
更改为echo curl_error($ch)
并得到消息couldn't connect to host
所以这似乎是问题所在。
现在的问题是,为什么它不能连接到可以通过浏览器轻松访问的主机,我可以在任何地方寻找它吗?
如果您的主机启用了 HTTP 包装器,并且启用了allow_url_fopen
配置选项,那么您不需要 cURL,尤其是对于如此简单的请求。
看起来您需要做的就是打开一个URL,您可以使用fopen()
轻松完成此操作:
$oid = $_GET["oid"];
$notify_url = "http://mydomain.com/somepath/".$oid;
$fh = fopen( $notify_url, 'r');
fclose( $fh);