伟大的评论主题:https://stackoverflow.com/a/6398220/1679026给了我希望,但我未能解决我的问题。当我使用cURL获取www.php.net页面时,它可以正常运行
我的网络设备位于本地局域网(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”状态的变化。 < - 这就是我想用一个按钮自动化的东西!
在我的网络表单上,我点击了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信息,看起来我很接近但却错过了某个地方的“明显的事实”!
希望我的挑战值得您的关注。 谢谢。 --- --- UPDATE
突出显示的一个(484)上方和下方的“已发送”值(461)具有相应的POST数据: { “版本”: “1.1”, “方法”: “unit.baseInfo”, “ID”:28, “PARAMS”:[]} {“version”:“1.1”,“method”:“term.cmd”,“id”:29,“params”:[“signage sign CELL_IN_ALARM”]} { “版本”: “1.1”, “方法”: “unit.baseInfo”, “标识”:30, “PARAMS”:[]}
这显示了类型application / jason和 - http://192.168.1.117/jasonrpc-(jasonRemoteProcedureCall?)
的网址这会使我的斗争简化或复杂化吗?
- 新更新 -
当我运行以下代码时,我得到php.net主页并返回空白“... is - &gt;”第二次回归...
// 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,第二个是我网络上的设备。这是一个原始的网络/网络冲突吗?真的很欣赏这里的大脑周期!
答案 0 :(得分:1)
您正在考虑CURLOPT_POSTFIELDS
。
这可以像
一样使用$ch = curl_init($site);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "field1=value1&field2=value2&field3=value3");
$chx = curl_exec($ch);
还应注意,CURLOPT_POST仅对找到的文档here采用TRUE或FALSE