这里有新鲜出炉的 PHP 设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
PHP 代码被 PHP 解释器解释后只可运行于服务器上的 Web 端, 这里我们来简单解析 PHP 程序的运行流程, 需要的朋友可以参考下
一直想了解 Web 编程的技术。PHP 是进行 Web 编程重要的一种语言,书上总是说,PHP 是用于服务器端的编程语言。但是,实在不能理解它是怎么用于服务器端编程,如何被运行。也看过一些 PHP 的教程,大多是介绍语法,却没有给出前面的问题解答。最近东拼西凑的看了一些东西,终于对 PHP 如何运行有了一些了解。
HTTP 协议与 PHP 脚本的触发
HTTP 是一种基于 Request/Response 的协议,是支持 Web 运行的协议基础。HTTP 的客户端发送 Request
到服务器端,服务器端返回 Response。Request 中包含客户端需要访问的页面的文件名。服务器端返回该文件名指向的网页。如果没有使用 PHP、JavaScript 等,HTTP 协议传输只能是静态的 html 文件。也就是,HTML 文件不会受到用户行为的影响,内容一直保持不变。
如果要实现动态网页,就需要使用 PHP 或 JavaScript。PHP 是用于服务器端的编程语言,JavaScript 是多用于客户端的编程语言。
PHP 代码是在服务器端被执行的。用户访问一个包含 PHP 代码的网页时,发送 Request 到服务器,其中包含网页的文件名。服务器收到 Request 后,找到文件名指向的文件,发现其中嵌有 PHP 代码,会调用 PHP 解释器处理该文件,然后将处理后的结果整理到 Response,发送到客户端。PHP 代码可以与服务器端的数据库或其他资源进行交互,或者根据用户的操作产生不同的页面。
因此,PHP 脚本的触发是在服务器收到客户端的 Request。收到一个 Request 后,服务器触发一个 PHP 脚本;处理完脚本后,返回结果到客户端,等待下一个 Request。当收到下一个 Request 后,服务器触发另一个(或同一个)PHP 脚本。两次 PHP 脚本的运行是相互独立的,第二次脚本的运行几乎不受前一次脚本运行的影响。
JavaScript 代码一般是在客户端被执行的,即被浏览器所处理。客户端从服务器端获取的是 JavaScript 代码,而不是代码被执行后的结果,然后调用解释器执行该代码。
PHP 的代码块
PHP 代码是可以嵌入到 HTML 文件中的,经常可以在 HTML 文件中看到散落在各处的 PHP 代码块。我也一直困惑在同一个 HMTL 文件中,不同的 PHP 代码块之间是怎样的关系。原来 PHP 是会忽略两个 PHP 代码块之间 HTML 代码的。
- <head>
- <title>Test PHP Multiple Blocks</title>
- </head>
- <body>
- <p>This is HTML code.</p>
- <?php
- $var = 1;
- echo "<p>This is PHP code block 1. <br/> \$var=$var </p>";
- ?>
- <p>This is HTML code too.</p>
- <?php
- $var += 1;
- echo "<p>This is PHP code block 2. <br/> \$var=$var</p>"
- ?>
- </body>
代码中有两个 PHP 代码块,它们被 HTML 代码隔开了。第 1 个 PHP 代码块声明了 1 个变量 $var;第 2 个代码块引用 $var,进行改变了它的值。用 PHP 执行上述代码,得到的输出如下。
- <head>
- <title>Test PHP Multiple Blocks</title>
- </head>
- <body>
- <p>This is HTML code.</p>
- <p>This is PHP code block 1. <br/> $var=1 </p>
- <p>This is HTML code too.</p>
- <p>This is PHP code block 2. <br/> $var=2</p>
- </body>
第 2 个代码块是可以引用 $var 的。虽然被 HTML 代码隔开了,但是两段代码的执行完全忽略了 HTML 部分。PHP 的输出与下面没有被 HTML 隔开的 PHP 代码是一样的,前者只是在 PHP 输出结果之间插入了相应的 HTML 代码。
- <?php
- $var = 1;
- echo "<p>This is PHP code block 1. <br/> \$var=$var </p>";
- $var += 1;
- echo "<p>This is PHP code block 2. <br/> \$var=$var</p>"
- ?>
来源: http://www.phperz.com/article/17/0826/343448.html