# 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 敏捷開發