【问题标题】:How to constantly check for a change in PHP?如何不断检查 PHP 的变化?
【发布时间】:2017-07-17 09:45:51
【问题描述】:

我认为我对 php 工作原理的一般理解是有缺陷的。我在某处读到 php 逐行工作。然而,当使用 php://input 之类的东西时,这让我可以不断地实时检查变化。但是,如果 php 逐行工作,这怎么可能呢?另外,如果我使用

之类的方法检查变量更改

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

那么一旦服务器接收到 $_POST 变量,它就会执行 if 条件。同样,如果在脚本运行中只检查了一次 if 条件,这将如何发生?显然 php 不是一行一行的。

现在谈谈我真正的问题。如何在 PHP 中对其他事物进行这种不断变化的检查?就像,在我刚刚向您展示的 if 语句中,我将变量更改为 true。当此变量为真时,脚本稍后会触发另一个 if 语句。但是,事实并非如此,因为我假设 php 的逐行特性阻止它不断检查此变量的状态。

也许我要走一个复杂的切线,但我只是需要把事情弄清楚。谢谢。

编辑:我正在使用 webhook 来制作信使机器人。

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

我就是这样收听直播的。

【问题讨论】:

  • 不,PHP 不是解释型语言,它不能逐行运行;每个文件都被编译成字节码,然后依次处理
  • 为什么 PHP 需要经常检查?它是一种服务器端语言,因此唯一真正的方法是通过 AJAX 调用不断对其进行处理。为什么不写一些 javascript 来做你想做的事,然后在它 POST 之后让 PHP 处理它
  • @Mark Ba​​ker 这是什么意思?如果它是按顺序处理的,那么它如何不断检查 i/o 流?
  • 这不是发生在我的 cloud9 服务器上的吗?我让服务器不断运行,并且只有在设置 $_POST['url'] 变量时才会触发条件。这在很大程度上意味着它正坐在那里等待设置变量?我保证我不会重新加载页面或重新开始执行。一旦脚本执行完毕,PHP 会自动循环回到索引的开头吗?
  • 它使用了facebook的graph api和webhooks!它不接受用户输入!它通过他们的 api 获取用户消息,并且似乎能够不断检查它

标签: php input server stream reload


【解决方案1】:

webhook 是一个 HTTP 调用,因此您的 POST 数据不会“更改”,因为如果您的数据发生更改,则需要一个新的 HTTP POST 来处理您的 PHP 代码的新执行。因此,编写逻辑来查找 POST 数据的变化实际上是无关紧要的,因为这些值已传递到您的代码中。

除非我误会你了……

【讨论】:

  • 另外,如果 webhook 不经常检查更新,它如何与 php 一起工作?没有意义
  • 我认为你误解了我...我保证我不会执行脚本。我所拥有的只是我在原始帖子中向您展示的 if isset 条件。 $_POST 变量是从另一个服务器 php 脚本的 curl_exec 设置的。当执行该其他服务器脚本时,它会向我的 cloud9 服务器发送一个包含 url 和消息键的数组。一旦发生这种情况,cloud9 服务器就会执行 if isset 语句。这意味着它正坐在那里等待设置变量??
  • 抱歉,在朋友的电脑上自动填写了即时消息
猜你喜欢
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
  • 2013-07-06
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
相关资源
最近更新 更多