# 3.4.2 PHP
### 3.4.2 PHP
PHP最初的含义是“Personal Home Page”,于1995年由Rasmus Lerdorf发明,是他用来建立个人主页的一个工具集,并没有被设计成一种编程语言[1](#fn_1)。如今,PHP已经成为了一种十分流行的服务器编程语言,并且其应用范围也不再限于服务器编程领域。PHP也被重新(递归)定义为“PHP: Hypertext Preprocessor”,即超文本预处理器。
下面是一个PHP版的“Hello, World”程序:
```
<html>
<head>
<title>Hello</title>
</head>
<body>
<?php echo '<p>Hello, PHP!</p>'; ?>
</body>
</html>
```
可以看出,这是一个普通的HTML文件,嵌入了PHP代码——由**<?php** 和**?>**标记。这段PHP代码输出了一段HTML文本`<p>Hello, PHP!</p>`——当然它也可以是其他任何动态内容。假设程序保存在文件hello.php中、对应的URL是`http://localhost/hello.php`[2](#fn_2)。在浏览器里访问这个URL,就能得到:
```
<html>
<head>
<title>Hello</title>
</head>
<body>
<p>Hello, PHP!</p>
</body>
</html>
```
作为一个扩展的例子,读者可以观察一下以下PHP程序
```
<html>
<head>
<title>Hello</title>
</head>
<body>
<?php
foreach ($_SERVER as $key => $value)
echo "{$key} => {$value}<br>";
?>
</body>
</html>
```
的运行结果,看看是不是跟上面提到的CGI的环境变量很相似。
关于PHP语言的更多介绍,请参考[官方的PHP手册](http://php.net/manual/zh/)。
此外,这里还要推荐一篇文档和一本书:
- [《PHP The Right Way》](http://www.phptherightway.com/),中译[《PHP之道》](http://laravel-china.github.io/php-the-right-way/)——这篇文档涵盖了现代PHP开发的方方面面,从新的语言特征,如命名空间,到软件包和项目依赖管理等等。如果你是一个有经验的其他语言的Web开发者,它能让你快速找到用PHP进行Web开发的“感觉”和工具;对新手也是如此。作者建议读者从这篇文档开始学习PHP。
- OReilly出版的[《Modern PHP》](http://shop.oreilly.com/product/0636920033868.do) ——这本书的作者跟上面的文档是同一人,OReilly五星(满级)好评,你值得拥有。
> 1. 关于PHP的历史,这个Wiki有介绍:<https://en.wikipedia.org/wiki/PHP#History>[↩](#reffn_1 "Jump back to footnote [1] in the text.")
> 2. 请参考这个文档安装好PHP的运行环境:<http://php.net/manual/zh/install.php>。需要指出的是,PHP提供了一个开发用的dev server,使用方法是:首先建立一个目录作为你的“document root”,然后进入到这个目录下运行命令`php -S localhost:8000`。这样,在这个目录下扩展名为.php的文件都会被PHP解释执行。例如,在这个目录下有一个文件hello.php,你就可以在浏览器里通过`http://localhost:8000/hello.php`来访问它。[↩](#reffn_2 "Jump back to footnote [2] in the text.")
- 前言
- 1 Web概述
- 1.1 什么是Web
- 1.2 超文本和超链接
- 1.3 URL
- 1.4 DNS
- 1.5 HTTP
- 1.5.1 客户端请求
- 1.5.2 服务器应答
- 1.5.3 进一步了解HTTP
- 1.6 HTTPS
- 2 Web浏览器
- 2.1 HTML
- 2.1.1 文档类型声明
- 2.1.2 标签和属性
- 2.1.3 文档结构
- 2.1.4 DOM
- 2.1.5 进一步了解HTML
- 2.2 CSS
- 2.2.1 样式与样式表
- 2.2.2 样式表语法
- 2.2.3 级联样式表
- 2.2.4 进一步了解CSS
- 2.3 JavaScript
- 2.3.1 script标签
- 2.3.2 操纵DOM
- 2.3.3 jQuery
- 2.3.4 进一步了解JavaScript
- 2.4 Ajax
- 2.5 移动设备与响应式Web设计
- 3 Web服务器
- 3.1 方法与资源
- 3.2 状态代码
- 3.3 静态内容与动态内容
- 3.4 编程语言与技术
- 3.4.1 CGI
- 3.4.2 PHP
- 3.4.3 Java
- 3.4.4 Python
- 3.4.5 Ruby
- 3.4.6 Node.js
- 3.5 RESTful Web API
- 3.6 服务器架构
- 3.7 Web缓存
- 3.8 服务器推送
- 4 数据库
- 4.1 关系型数据库
- 4.2 NoSQL数据库
- 5 Web服务器的其他组件
- 5.1 Cron
- 5.2 消息队列
- 5.3 邮件服务器
- 6 开发工具与技术
- 6.1 Git
- 6.1.1 Git基础操作
- 6.1.2 Git基本原理
- 6.1.3 进一步了解Git
- 6.2 敏捷开发