当有多种编程语言时,系统以什么顺序读取其代码?

zll*_*oyd 1 html php

在拥有多种编程语言时,系统以什么顺序执行其代码?假设我有这样的系统,代码排列如下

|
HTML1 - 此处的第一个HTML代码
|
PHP1 - 这里的第一个PHP代码
|
HTML2 - 此处的第二个HTML代码
|
PHP2 - 这里的第二个PHP代码
|
HTML3 - 此处的第三个HTML代码

它是否从上到下读取如下:
执行HTML1 - PHP1 - HTML2 - PHP2 - HTML3

要么

执行代码时有一些层次结构?
像执行首先所有的PHP代码然后HTML代码?

这个问题的目的是让像我这样的初学者理解代码是如何执行的,这样我就可以计划我的代码将如何流动

dec*_*eze 6

相同的系统很少解释PHP 和 HTML,它可以做或者.

有点难以猜出你究竟在谈论什么,但我假设你在谈论这样一个文件:

<html>
   ...

   <?php echo 'foo'; ?>

   <p><?php echo 'bar'; ?></p>

   <script type="text/javascript">
       alert('baz');
   </script>
</html>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,每个"语言"完全由不同的系统处理.

  1. 客户端向Web服务器发送HTTP请求.
  2. Web服务器启动PHP.
  3. PHP解释并运行所有代码<?php ?>片段(从上到下)并完全忽略其他任何内容.*
  4. Web服务器将处理后的文件返回给客户端,该客户端现在不再包含<?php ?>片段.它会在完成后返回PHP吐出的内容.
  5. 客户端解析HTML以从中可视地构建网站.
  6. 一旦解析了HTML,<script>片段就会由客户端的Javascript实现执行,如果它有这样的话.

视觉提示,取自/sf/answers/968830201/:

                    |
               ---------->
              HTTP request
                    |
+--------------+    |    +--------------+
|              |    |    |              |
|    browser   |    |    |  web  server |
| (Javascript) |    |    |  (PHP etc.)  |
|              |    |    |              |
+--------------+    |    +--------------+
                    |
  client side       |      server side
                    |
               <----------
          HTML, CSS, Javascript
                    |
Run Code Online (Sandbox Code Playgroud)

*通过"忽略"我的意思是它只是将其作为输出传递,它不会将其解释为PHP代码.