您的代码分为两个完全独立的部分, 服务器端 和 客户端 。
| ----------> HTTP request |+--------------+ | +--------------+| | | | || browser | | | web server || (Javascript) | | | (PHP etc.) || | | | |+--------------+ | +--------------+ | client side | server side | <---------- 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>步骤1,PHP执行
<?php ?>标记之间的所有代码。结果是这样的:
<script type="text/javascript"> var foo = 'bar'; var baz = 42; alert(baz);</script>
该
file_put_contents呼叫并没有导致任何东西,它只是写了“+富+”到文件中。该
<?php echo 42; ?>调用导致输出“
42”,该输出现在位于该代码以前所在的位置。
现在,此生成的HTML / Javascript代码将发送到客户端,并在此进行评估。该
alert调用有效,而该
foo变量未在任何地方使用。
在客户端甚至开始执行任何Javascript之前,所有PHP代码都在服务器上执行。 Javascript可以与之交互的响应中没有剩下PHP代码。
要调用一些PHP代码,客户端将必须向服务器发送新的HTTP请求。使用以下三种可能的方法之一可能会发生这种情况:
- 链接,使浏览器加载新页面。
- 表单提交,它将数据提交到服务器并加载新页面。
- 一个AJAX请求,这是一个Javascript技术,使一个普通的HTTP请求到服务器(如1和2会),而无需离开当前页面。
您还可以使用Javascript来
window.location模拟或可能性1.和2. ,使浏览器使用或提交表单来打开新页面。



