2017-02-26 2 views
-1

私の一般的な考え方は、PHPの動作に欠陥があると思います。私はどこかでphpが行単位で動作することを読んでいます。しかし、php:// inputのようなものを使うと、リアルタイムで変化を常に確認することができます。しかし、phpが1行ずつ動いている場合、どうすればいいですか?また、私はサーバーが$ _POST変数を受信すると、その後、それがあれば条件をさせて頂きますPHPの変更を常に確認するには?

if (isset ($_POST["url"], $_POST["message"])){

のようなものを使用して、変数の変化をチェックします。繰り返しますが、if条件がスクリプト実行で一度だけチェックされた場合、これはどのように起こりますか?明らかにphpは行単位ではありません。

今私の本当の質問に。 PHPでこの変更チェックを他の目的のためにどうやって得るのですか?同様に、私があなたに示したif文の中で、私は本当に変わる変数を持っています。この変数がtrueの場合、後でスクリプト内の別のif文が起動するはずです。しかし、私はphpの行ごとの性質によって、この変数の状態を絶えずチェックすることができないと仮定しているので、そうはしません。

多分、私は複雑な接線で行っているかもしれませんが、私は物事をクリアする必要があります。ありがとう。

編集:私はメッセンジャーボットを作るためにウェブフックを使用しています。

$input = json_decode(file_get_contents('php://input'), true); 

これは、ストリームでリッスンする方法です。

+0

いいえ、PHPはインタープリター言語ではありません。行単位では動作しません。各ファイルはインクルードされたときにバイトコードにコンパイルされ、それから順番に処理されます –

+0

なぜPHPは絶えずチェックする必要がありますか?それはサーバサイドの言語なので、それを行う本当の唯一の方法はAJAX呼び出しでそれを打ち続けることです。あなたが望むことをやり遂げるためにJavaScriptを書くのではなく、POST後にPHPが処理するようにしてください。 – SaggingRufus

+0

@マーク・ベイカーそれはどういう意味ですか?それが連続的に処理される場合、どのようにしてI/Oストリームを絶えずチェックできますか? –

答えて

0

webhookはHTTP呼び出しであるため、POSTデータは変更されません。データが変更された場合、PHPコードの新しい実行によって処理される新しいHTTP POSTが必要となるからです。したがって、POSTデータの変更を調べるロジックを作成することは、これらの値がコードに渡されるため、実際には無関係です。

私があなたを誤解している場合を除き...

+0

また、webhooksが更新を絶えずチェックしていない場合、phpでwebhooksはどのように動作しますか?意味がない –

+0

あなたは私を誤解していると思います...私はスクリプトを実行していないと約束します。私が持っているのは、元の投稿であなたに示したifset条件です。 $ _POST変数は別のサーバPHPスクリプトからのcurl_execから設定されます。その他のサーバースクリプトが実行されると、URLとメッセージキーを持つ配列がクラウドサーバーに送信されます。そして、まもなく、cloud9サーバーはif issetステートメントを実行します。これは変数が設定されるのを待っていることを意味しますか? –

+0

友人のコンピュータで自動入力すると申し訳ありません –

関連する問題