2

すばらしいコメント スレッド: 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 情報を精査しましたが、私は近くにいるようですが、どこかで「明白な真実」を見逃しているようです!

私の挑戦があなたの興味に値することを願っています. ありがとうございました。 - -アップデート - -

POST イベントの HTTPFox キャプチャ 強調表示された値 (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":[]}

これは、type application/jason と URL を示しています - http://192.168.1.117/jasonrpc-(jasonRemoteProcedureCall?)

これは私の闘争を単純化しますか、それとも複雑にしますか?

- 新しいアップデート -

次のコードを実行すると、php.net のホームページが表示され、2 番目の戻り値として空白の戻り値 "...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";

1 つ目は www で、2 つ目はネットワーク上のデバイスです。これは原始的なネットワーク/Web 競合ですか? ここでの脳のサイクルに本当に感謝しています!

4

1 に答える 1

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 は、ここにあるドキュメントに従って TRUE または FALSE のみを取ることにも注意してください。

于 2012-11-16T03:42:57.117 に答える