此curl命令由于某种原因不起作用

时间:2012-07-03 14:53:27

标签: php curl

我有一个我需要从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,这似乎是问题所在。

现在的问题是,为什么它不能连接到可以通过浏览器轻松访问的主机,我可以在任何地方找到它吗?

1 个答案:

答案 0 :(得分:4)

如果您的主机启用了HTTP包装,并且启用了allow_url_fopen配置选项,那么您不需要cURL,尤其是对于这样一个简单的请求。

看起来您需要做的就是打开一个网址,您可以使用fopen()轻松完成此操作:

$oid = $_GET["oid"];
$notify_url = "http://mydomain.com/somepath/".$oid;
$fh = fopen( $notify_url, 'r');
fclose( $fh);