P粉1119279622023-08-23 15:50:54
要确定为什么PHP代码在JavaScript代码中不起作用,我们需要了解什么是客户端和服务器端语言,以及它们的工作原理。
服务器端语言(如PHP等):它们从数据库中检索记录,保持在无状态的HTTP连接上维持状态,并执行许多需要安全性的操作。它们驻留在服务器上,这些程序的源代码从不暴露给用户。
因此,您可以很容易地看出服务器端语言处理HTTP请求并对其进行处理,正如@deceze所说,PHP在服务器上执行并输出一些HTML,以及可能的JavaScript代码,这作为响应发送到客户端,在那里解释HTML并执行JavaScript。
另一方面,客户端语言(如JavaScript)驻留在浏览器中并在浏览器中运行。客户端脚本通常指在Web上由用户的Web浏览器而不是服务器端执行的计算机程序。
JavaScript对用户可见且可以轻松修改,因此对于安全性问题,我们不能依赖JavaScript。
因此,当您在服务器上发出HTTP请求时,服务器首先仔细读取PHP文件以查看是否有需要执行的任务,并向客户端发送响应。再次,正如@deceze所说,*一旦PHP完成输出响应,脚本将结束,直到收到新的HTTP请求,服务器上将不会发生任何事情。*
那么,如果我需要调用PHP,我该怎么办?这取决于您需要如何操作:通过重新加载页面或使用AJAX调用。
好的阅读材料:
P粉1037395662023-08-23 09:17:40
您的代码被分为两个完全独立的部分,即服务器端和客户端。
|
---------->
HTTP请求
|
+--------------+ | +--------------+
| | | | |
| 浏览器 | | | 网络服务器 |
| (JavaScript) | | | (PHP等) |
| | | | |
+--------------+ | +--------------+
|
客户端 | 服务器端
|
<----------
HTML, CSS, JavaScript
|
这两个部分通过HTTP请求和响应进行通信。PHP在服务器上执行并输出一些HTML和可能的JavaScript代码,作为响应发送给客户端,在客户端解释HTML并执行JavaScript。一旦PHP完成输出响应,脚本就会结束,在服务器上不会发生任何事情,直到有新的HTTP请求进来。
示例代码的执行过程如下:
<script type="text/javascript"> var foo = 'bar'; <?php file_put_contents('foo.txt', ' + foo + '); ?> var baz = <?php echo 42; ?>; alert(baz); </script>
第一步,PHP执行<?php ?>
标签之间的所有代码。结果如下:
<script type="text/javascript"> var foo = 'bar'; var baz = 42; alert(baz); </script>
file_put_contents
调用没有产生任何结果,它只是将" + foo + "写入文件中。而<?php echo 42; ?>
调用的结果是输出"42",现在它在原来代码的位置。
这个结果的HTML/JavaScript代码现在被发送到客户端,在那里被评估。alert
调用起作用,而foo
变量在任何地方都没有被使用。
所有的PHP代码都在客户端开始执行任何JavaScript之前在服务器上执行。响应中没有剩余的PHP代码可以与JavaScript交互。
要调用一些PHP代码,客户端必须向服务器发送一个新的HTTP请求。这可以通过以下三种可能的方法之一实现:
您还可以使用JavaScript使浏览器打开一个新页面,使用window.location
或提交一个表单,模拟1和2的可能性。