【发布时间】: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 Baker 这是什么意思?如果它是按顺序处理的,那么它如何不断检查 i/o 流?
-
这不是发生在我的 cloud9 服务器上的吗?我让服务器不断运行,并且只有在设置 $_POST['url'] 变量时才会触发条件。这在很大程度上意味着它正坐在那里等待设置变量?我保证我不会重新加载页面或重新开始执行。一旦脚本执行完毕,PHP 会自动循环回到索引的开头吗?
-
它使用了facebook的graph api和webhooks!它不接受用户输入!它通过他们的 api 获取用户消息,并且似乎能够不断检查它
标签: php input server stream reload