很棒的评论线程: https ://stackoverflow.com/a/6398220/1679026给了我希望,但我没能解决我的问题。当我使用 cURL 来获取 www.php.net 页面时,它可以工作,所以 cURL 可以工作
我有一个位于本地 LAN ( http://192.168.1.117 ) 上的网络设备,或者在我的客户端站点上,设备 (n) 位于其 LAN (173.18.13.xxx) 上。从 Local_Browser_Address 我可以键入“ http://192.168.1.117/#diag/term&cmd=signage+sign+ALARM ”,网络设备会响应更改为“ALARM”状态。<-- 这就是我想用一键自动完成的!
在我的 web 表单上,当单击 Alarm_Button 时,我有 $_POST PHP 代码要执行。我希望我的客户物理站点上的用户能够在他们的浏览器中单击我的 web_form (www.mySite.com/index.php?option=com_rsform&formId=27) 上的 the_button 并让 cURL 代码发送/发布/执行(http-ALARM) 地址/指令字符串。我可以做这件事吗?在发送地址/指令时或之后不需要 UI。
我试过:
$c = curl_init('http://192.168.1.117/u/r/l');
curl_setopt($c, CURLOPT_HTTPHEADER, array('#diag/term&cmd=signage+sign+ALARM'));
curl_exec($c);
和
$curl = curl_init();
echo"<br> the curl resource is ch --> $curl";
curl_setopt ($curl, CURLOPT_URL, "http://192.168.1.117");
curl_setopt ($curl, CURLOPT_POST, "/#diag/term&cmd=signage+sign+CELL_IN_ALARM");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($curl);
curl_close ($curl);
echo"<br> The RESULT (1) is --> $result";
没有错误消息,但没有有用的结果。
首先:恐怕我会被诸如“no_outside_web_page_doing_junk_locally”之类的规则之类的安全限制所阻止。
如果我必须在内部 Web 服务器上创建本地页面,我可以在同一/相邻网络上的另一台设备上执行此操作。但是问题仍然存在,如何在 cURL 工具中表达 ip/command 指令。
我已经搜索了 StackOverFlow 信息,看起来我很接近但在某处错过了“明显的真相”!
希望我的挑战值得你关注。谢谢你。 - -更新 - -
突出显示的(484)上方和下方的“已发送”值(461)具有各自的POST数据:{“version”:“1.1”,“method”:“unit.baseInfo”,“id”:28,“params ":[]} {"version":"1.1","method":"term.cmd","id":29,"params":["signage sign CELL_IN_ALARM"]} {"version":"1.1" ,"方法":"unit.baseInfo","id":30,"params":[]}
这显示了类型 application/jason 和 URL - http://192.168.1.117/jasonrpc-(jasonRemoteProcedureCall?)
这会使我的斗争变得简单还是复杂?
-- 新更新 --
当我运行以下代码时,我得到了 php.net 主页和一个空白返回“...is -->”作为第二个返回...
// From http://www.tuxradar.com/practicalphp/15/10/2
$curl1 = curl_init();
curl_setopt ($curl1, CURLOPT_URL, "http://www.php.net");
curl_setopt($curl1, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($curl1);
curl_close ($curl1);
print $result;
//====================
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, "http://192.168.1.117");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($curl);
curl_close ($curl);
//print $result;
echo"<br> The RESULT (1) is --> $result";
第一个是 www,第二个是我网络上的设备。这是原始的网络/Web 冲突吗?真的很欣赏这里的大脑循环!