为什么通过javascript执行php可以工作

Why does executing php via javascript work?

本文关键字:工作 php 执行 javascript 为什么      更新时间:2023-09-26

有人可以解释一下在这种情况下的请求和响应周期的分步吗?是的,它确实有效(如果你有一个有效的 php 后端)。

for(var i=0; i<10; i++){
    var test = "<?php echo 'test'; ?>";
    console.log(test);
}

请不要鹦鹉学舌维基百科对AJAX的定义,或者php是服务器端,javascript是客户端,我知道这些事情。

我的问题是,在这种情况下,我无法将我的大脑包裹在哪个首先出现。我的想法是首先执行js并向服务器发送请求,但这基本上不是AJAX吗?如果不首先执行js,服务器怎么可能知道执行php(即echo"test")而不仅仅是提供php标签的纯文本版本?

尝试将其视为图层。我相信你知道php在服务器上运行,javascript在客户端上运行。这就是我认为它的流动方式

  • 呈现的页面必须来自某个地方,在这种情况下它是服务器,幸运的是,这也是执行 PHP 的地方,因此所有 PHP 代码在发送到服务器之前都已运行。 即:甚至是回显码
  • echo 测试已经在服务器中运行,字符串"test"已经在一个相当幸运的地方生成 - 在 JavaScript 变量声明中。
  • 因此,正如我们所看到的,服务器只是发送了"var test = 'test'"并且没有做任何JavaScript,所以"var"对服务器来说并不重要
  • 当它从服务器到达浏览器时,这实际上是有意义的并被执行!

因此,对于服务器来说,'var test = '只是字符串'var test = "test";而对于浏览器中的Javascript来说,这意味着变量test包含一个字符串'test'

编辑:如果在从服务器发送的页面的for循环中使用,当页面到达浏览器时,无论出现echo php脚本,哪里都出现了回显字符串

您从服务器请求一个.php文件,然后它对其进行解析,然后呈现以提供给客户端。在渲染过程中,echo 输出一个字符串,因此var test = "<?php echo 'test'; ?>";在输出中变得var test ="test"。浏览器解释输出(html)并在此时执行任何javascript。你给出的场景中没有涉及Ajax,这就是为什么你可能会感到困惑。

Step 1) PHP 准备要由浏览器解析的页面。 发送到浏览器的实际源代码是:

var test = "test";
alert(test);

您应该能够在生成的页面上查看源代码并查看此内容。 您不是在进行服务器端调用,您只是通过PHP将文本加载到浏览器页面中

我会尽量简单地说出来。你知道PHP是服务器端,JS是客户端,你

在这方面是正确的。

PHP作为一种语言运行它所做的一切,以生成要推送到客户端(浏览器)的HTML内容。所以当你运行你的javascript时:

for(var i=0; i<10; i++){
    var test = "<?php echo 'test'; ?>";
    console.log(test);
}

PHP在javascript知道它做了任何事情之前就被评估了。本质上是让你的小脚本看起来像这样:

for(var i=0; i<10; i++){
    var test = "test";
    console.log(test);
}

上面的脚本中不涉及 ajax。