0

我有一个需要从 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 建议的那样echo curl_error();,我在 curl_exec 之后添加了这个错误......

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,这似乎是问题所在。

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

4

1 回答 1

4

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

看起来您需要做的就是打开一个 URL,您可以轻松地使用fopen()

$oid = $_GET["oid"];
$notify_url = "http://mydomain.com/somepath/".$oid;
$fh = fopen( $notify_url, 'r');
fclose( $fh);
于 2012-07-03T15:01:26.753 回答