这是将 PHP 与 Curl(在托管服务器上)结合使用的问题。我正在尝试控制端口 54512
上的远程设备(LED 状态)(例如)。 $url
包括与短 CGI 命令连接的 IP:port
号码。
以下为代码片段;
$sensorIP = "77.134.85.187:54512"; // IP:port format
$url = $sensorIP . "/setParam.cgi?DOStatus_02=0" ; // set E2210 LED off
echo $url; //
$result = accessURL ($url); // set LED state on E2210 remote unit
此代码超时。当我在网络浏览器中使用 $url 作为地址时,它工作正常。所以接收端口54512没有被阻塞。当我使用 IP:80
形成 $url
它工作正常(接收端口设置为 80)。我尝试使用 CURLOPT_PORT
选项和PHP 脚本仍然超时。
发送服务器传出 HTTP 没有阻止任何端口号,我向我的托管公司核实过。他们认为我有一个编程错误,但是在哪里?
谢谢!阿尔
最佳答案
解决方法:
试试
$sensorIP = "http://77.134.85.187:54512";
确保出站端口 54512 已打开(请咨询您的托管服务提供商)
在
curl_exec()
函数之后,添加$output = curl_getinfo($ch);
并打印并检查输出。你可以从中得到一些信息。不要将端口号作为 url 的一部分。请改用以下内容:
curl_setopt($ch, CURLOPT_PORT, '54512');
关于带有端口号问题的 PHP Curl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14152628/