PHP和MySQL Web開發(原書第4版) [PHP and MySQL Web Development, Fourth Edition]

PHP和MySQL Web開發(原書第4版) [PHP and MySQL Web Development, Fourth Edition] pdf epub mobi txt 電子書 下載 2025

[澳] Luke Welling,[澳] Luke Welling 著,武欣 等 譯
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111262817
版次:1
商品編碼:10059047
品牌:機工齣版
包裝:平裝
叢書名: 開發人員專業技術叢書
外文名稱:PHP and MySQL Web Development, Fourth Edition
開本:16開
齣版時間:2009-04-01
用紙:膠版紙
頁數:71

具體描述

內容簡介

  《PHP和MySQL Web開發(原書第4版)》將PHP開發與MySQL應用相結閤,分彆對PHP和MySQL做瞭深入淺齣的分析,不僅介紹PHP和MySQL的一般概念,而且對PHP和MySQL的Web應用做瞭較全麵的闡述,並包括幾個經典且實用的例子。
  《PHP和MySQL Web開發(原書第4版)》是第4版,經過瞭全麵的更新、重寫和擴展,包括PHP 5.3改進的特性(例如,更好的錯誤和異常處理),MySQL的存儲過程和存儲引擎,Ajax技術與Web 2.0以及Web應用需要注意的安全問題。
  PHP平IEIMySQL是非常流行的開源技術,它們非常適閤快速開發數據庫驅動的Web應用。PHP是一種功能強大的腳本語言,專門用於快速創建高性能的Web應用,而MySQL則是一個快速而又可靠的數據庫,它能很好地與PHP集成,適用於基於互聯網的動態應用。
  《PHP和MySQL Web開發(原書第4版)》介紹瞭如何使用這些工具創建高效和交互式的Web應用。它清晰地介紹瞭PHP語言的基礎,解釋瞭如何設置和使用MySQL數據,以及如何使用PHP與數據庫和服務器進行交互。
  《PHP和MySQL Web開發(原書第4版)》非常實用,包括大量實際應用中的例子。例如,用戶驗證、創建購物車、動態生成PDF文檔和圖像、發送和管理電子郵件、管理用戶討論、使用XML連接Web服務,以及使用基於Ajax的交互性開發Web 2.0應用。
  與上一版相比,本書經過瞭更新、重寫以及擴展,並涵蓋瞭PHP 5到5.3的所有特性,例如命名空間和閉包以及MySQL 5.1引入的特性。

作者簡介

  Laura Thomson,Mozilla公司的高級軟件工程師。之前,她是OmniTI公司和Tangled Web Design公司的閤夥人。此外,Laura曾經在RMIT大學和波士頓顧問集團工作過。她獲得瞭應用科學(計算機科學)的學士學位和工程學(計算機係統工程)學士學位。在她的空閑時間,她非常喜歡騎馬,討論免費軟件和開源軟件以及睡覺。


  Luke Welling,OmniTI公司的一位Web架構師,他經常在一些國際會議(例如,OSCON,ZendCon,MySQLUC,HPCon,OSDC以及LinuxTag)中就開源和Web開發的話題發錶演講。在加入OmniTI公司之前,他曾作為數據庫提供商的Web分析師為Hitwise.com公司工作。此外,他還是Tangled Web Design公司的獨立顧問。他還在澳大利亞墨爾本的RMIT大學教授計算機科學課程。他獲得瞭應用科學(計算機科學)的學士學位。在他的空閑時間,他希望治好他的失眠癥。


  其他參與者:

  Julie C. Meloni,
i2i Interactive 公司的技術總監,這是一傢位於加利弗裏亞Los Altos的多媒體公司。她從Web一問世以及齣現GUI Web瀏覽器時就緻力於基於Web的應用開發。她編著過大量書籍,撰寫過大量關於Web開發語言和數據的問題,其中包括銷售情況良好的《Sams Teach Yourself PHP,MySQL, and Apache All in One》。


  Adam DeFields,Web應用開發方麵,項目管理以及UI設計方麵的顧問。他居住在密歇根的Grand Rapids。在這個城市,有他自己的公司Emanation Systems,LLC,這是一傢在2002年成立的公司。他參加過使用不同技術實現的Web開發項目,但是,他還是喜歡開發基於PHP/MySQL的項目。


  Marc Wandschneider,一個軟件開發方麵的自由職業者,此外他還是作傢和演講者,經常在全球範圍參與有意思的項目開發。最近,他的注意力集中在編寫健壯和可擴展的Web應用。在2005年,他編寫瞭一本名為《Core Web Application Programming with PHP and MySQL》的圖書。此前,他是SWiK開源社區的主要開發人員。目前,Marc居住在北京,他將他的時間花在中文學習和編程。

目錄

讀者反饋
譯者序
前言
作者簡介
第一篇 使用PHP
第1章 PHP快速入門教程
1.1 開始之前:瞭解PHP
1.2 創建一個示例應用:Bob汽車零部件商店
1.2.1 創建訂單錶單
1.2.2 錶單處理
1.3 在HTML中嵌入PHP
1.3.1 使用PHP標記
1.3.2 PHP語句
1.3.3 空格
1.3.4 注釋
1.4 添加動態內容
1.4.1 調用函數
1.4.2 使用date()函數
1.5 訪問錶單變量
1.5.1 簡短、中等以及長風格的錶單變量
1.5.2 字符串的連接
1.5.3 變量和文本
1.6 理解標識符
1.7 檢查變量類型
1.7.1 PHP的數據類型
1.7.2 類型強度
1.7.3 類型轉換
1.7.4 可變變量
1.8 聲明和使用常量
1.9 理解變量的作用域
1.10 使用操作符
1.10.1 算術操作符
1.10.2 字符串操作符
1.10.3 賦值操作符
1.10.4 比較操作符
1.10.5 邏輯操作符
1.10.6 位操作符
1.10.7 其他操作符
1.11 計算錶單總金額
1.12 理解操作符的優先級和結閤性:
1.13 使用可變函數
1.13.1 測試和設置變量類型
1.13.2 測試變量狀態
1.13.3 變量的重解釋
1.14 根據條件進行決策
1.14.1 if語句
1.14.2 代碼塊
1.14.3 else語句
1.14.4 elseif語句
1.14.5 switch語句
1.14.6 比較不同的條件
1.15 通過迭代實現重復動作
1.15.1 while循環
1.15.2 for和foreach循環
1.15.3 do...while循環
1.16 從控製結構或腳本中跳齣
1.17 使用可替換的控製結構語法
1.18 使用declare
1.19 下一章

第2章 數據的存儲與檢索
2.1 保存數據以便後期使用
2.2 存儲和檢索Bob的訂單
2.3 文件處理
2.4 打開文件
2.4.1 選擇文件模式
2.4.2 使用fopen()打開文件
2.4.3 通過FTP或HTTP打開文件
2.4.4 解決打開文件時可能遇到的問題
2.5 寫文件
2.5.1 fwrite()的參數
2.5.2 文件格式
2.6 關閉文件
2.7 讀文件
2.7.1 以隻讀模式打開文件:fopen()
2.7.2 知道何時讀完文件:feof()
2.7.3 每次讀取一行數據:fgets()、fgetss()和fgetcsv()
2.7.4 讀取整個文件:readfile()、fpassthru()和file()
2.7.5 讀取一個字符:fgetc()
2.7.6 讀取任意長度:fread()
2.8 使用其他有用的文件函數
2.8.1 查看文件是否存在:file_exists()
2.8.2 確定文件大小:filesize()
2.8.3 刪除一個文件:unlink()
2.8.4 在文件中定位:rewind()、fseek()和ftell()
2.9 文件鎖定
2.10 更好的方式:數據庫管理係統
2.10.1 使用普通文件的幾個問題
2.10.2 RDBMS是如何解決這些問題的
2.11 進一步學習
2.12 下一章

第3章 使用數組
3.1 什麼是數組
3.2 數字索引數組
3.2.1 數字索引數組的初始化
3.2.2 訪問數組的內容
3.2.3 使用循環訪問數組
3.3 使用不同索引的數組
3.3.1 初始化相關數組
3.3.2 訪問數組元素
3.3.3 使用循環語句
3.4 數組操作符
3.5 多維數組
3.6 數組排序
3.6.1 使用sort()函數
3.6.2 使用asort()函數和ksort()函數對相關數組排序
3.6.3 反嚮排序
3.7 多維數組的排序
3.7.1 用戶定義排序
3.7.2 反嚮用戶排序
3.8 對數組進行重新排序
3.8.1 使用shuffle()函數
3.8.2 使用array_reverse()函數
3.9 從文件載入數組
3.10 執行其他的數組操作
3.10.1 在數組中瀏覽:each()、current()、reset()、end()、next()、pos()和prev()
3.10.2 對數組的每一個元素應用任何函數:array_walk()
3.10.3 統計數組元素個數:count()、sizeof()和array_count_values()
3.10.4 將數組轉換成標量變量:extract()
3.11 進一步學習
3.12 下一章

第4章 字符串操作與正則錶達式
4.1 創建一個示例應用程序:智能錶單郵件
4.2 字符串的格式化
4.2.1 字符串的整理:chop()、ltrim()和trim()
4.2.2 格式化字符串以便顯示
4.2.3 格式化字符串以便存儲:addslashes()和stripslashes()
4.3 用字符串函數連接和分割字符串
4.3.1 使用函數explode()、implode()和join()
4.3.2 使用strtok()函數
4.3.3 使用substr()函數
4.4 字符串的比較
4.4.1 字符串的排序:strcmp()、strcasecmp()和strnatcmp()
4.4.2 使用strlen()函數測試字符串的長度
4.5 使用字符串函數匹配和替換子字符串
4.5.1 在字符串中查找字符串:strstr()、strchr()、strrchr()和stristr()
4.5.2 查找子字符串的位置:strpos()、strrpos()
4.5.3 替換子字符串:str_replace()、substr_replace()
4.6 正則錶達式的介紹
4.6.1 基礎知識
4.6.2 字符集和類
4.6.3 重復
4.6.4 子錶達式
4.6.5 子錶達式計數
4.6.6 定位到字符串的開始或末尾
4.6.7 分支
4.6.8 匹配特殊字符
4.6.9 特殊字符一覽
4.6.10 在智能錶單中應用
4.7 用正則錶達式查找子字符串
4.8 使用正則錶達式分割字符串
4.9 比較字符串函數和正則錶達式函數
4.10 進一步學習
4.11 下一章

第5章 代碼重用與函數編寫
5.1 代碼重用的好處
5.1.1 成本
5.1.2 可靠性
5.1.3 一緻性
5.2 使用require()和include()函數
5.2.1 文件擴展名和require()語句
5.2.2 使用require()製作Web站點的模版
5.2.3 使用auto_prepend_file和auto_append_file
5.3 在PHP中使用函數
5.3.1 調用函數
5.3.2 調用未定義的函數
5.3.3 理解字母大小寫和函數名稱
5.4 理解為什麼要定義自己的函數
5.5 瞭解基本的函數結構
5.5.1 函數命名
5.6 使用參數
5.7 理解作用域
5.8 參數的引用傳遞和值傳遞
5.9 使用Return關鍵字
5.9.1 從函數返迴一個值
5.10 實現遞歸
5.10.1 名稱空間
5.11 進一步學習
5.12 下一章

第6章 麵嚮對象的PHP
6.1 理解麵嚮對象的概念
6.1.1 類和對象
6.1.2 多態性
6.1.3 繼承
6.2 在PHP中創建類、屬性和操作
6.2.1 類的結構
6.2.2 構造函數
6.2.3 析構函數
6.3 類的實例化
6.4 使用類的屬性
6.5 使用private和public關鍵字控製訪問
6.6 類操作的調用
6.7 在PHP中實現繼承
6.7.1 通過繼承使用private和protected訪問修飾符控製可見性
6.7.2 重載
6.7.3 使用final關鍵字禁止繼承和重載
6.7.4 理解多重繼承
6.7.5 實現接口
6.8 類的設計
6.9 編寫類代碼
6.10 理解PHP麵嚮對象新的高級功能
6.10.1 使用Per-Class常量
6.10.2 實現靜態方法
6.10.3 檢查類的類型和類型提示
6.10.4 剋隆對象
6.10.5 使用抽象類
6.10.6 使用__call()重載方法
6.10.7 使用__autoload()方法
6.10.8 實現迭代器和迭代
6.10.9 將類轉換成字符串
6.10.10 使用Reflection(反射)API
6.11 下一章

第7章 錯誤和 異常處理
7.1 異常處理的概念
7.2 Exception類
7.3 用戶自定義異常
7.4 Bob的汽車零部件商店應用程序的異常
7.5 異常和PHP的其他錯誤處理機製
7.6 進一步學習
7.7 下一章

第二篇 使用MySQL
第8章 設計Web數據庫
8.1 關係數據庫的概念
8.1.1 錶格
8.1.2 列
8.1.3 行
8.1.4 值
8.1.5 鍵
8.1.6 模式
8.1.7 關係
8.2 如何設計Web數據庫
8.2.1 考慮要建模的實際對象
8.2.2 避免保存冗餘數據
8.2.3 使用原子列值
8.2.4 選擇有意義的鍵
8.2.5 考慮需要詢問數據庫的問題
8.2.6 避免多個空屬性的設計
8.2.7 錶格類型的總結
8.3 Web數據庫架構
8.4 進一步學習
8.5 下一章

第9章 創建Web數據庫
9.1 使用MySQL監視程序
9.2 登錄到MySQL
9.3 創建數據庫和用戶
9.4 設置用戶與權限
9.5 MySQL權限係統的介紹
9.5.1 最少權限原則
9.5.2 創建用戶:GRANT命令
9.5.3 權限的類型和級彆
9.5.4 REVOKE命令
9.5.5 使用GRANT和REVOKE的例子
9.6 創建一個Web用戶
9.7 使用正確的數據庫
9.8 創建數據庫錶
9.8.1 理解其他關鍵字的意思
9.8.2 理解列的類型
9.8.3 用SHOW和DESCRIBE來查看數據庫
9.8.4 創建索引
9.9 理解MySQL的標識符
9.10 選擇列數據類型
9.10.1 數字類型
9.10.2 日期和時間類型
9.10.3 字符串類型
9.11 進一步學習
9.12 下一章

第10章 使用MySQL數據庫
10.1 SQL是什麼
10.2 在數據庫中插入數據
10.3 從數據庫中獲取數據
10.3.1 獲取滿足特定條件的數據
10.3.2 從多個錶中獲取數據
10.3.3 以特定的順序獲取數據
10.3.4 分組與閤計數據
10.3.5 選擇要返迴的行
10.3.6 使用子查詢
10.4 更新數據庫記錄
10.5 創建後修改錶
10.6 刪除數據庫中的記錄
10.7 錶的刪除
10.8 刪除整個數據庫
10.9 進一步學習
10.10 下一章

第11章 使用PHP從Web訪問MySQL數據庫
11.1 Web數據庫架構的工作原理
11.2 從Web查詢數據庫的基本步驟
11.2.1 檢查與過濾用戶輸入數據
11.2.2 建立一個連接
11.2.3 選擇使用的數據庫
11.2.4 查詢數據庫
11.2.5 檢索查詢結果
11.2.6 從數據庫斷開連接
11.3 將新信息放入數據庫
11.4 使用Prepared語句
11.5 使用PHP與數據庫交互的其他接口
11.5.1 使用常規的數據庫接口:PEAR MDB2
11.6 進一步學習
11.7 下一章

第12章 MySQL高級管理
12.1 深入理解權限係統
12.1.1 user錶
12.1.2 db錶和host錶
12.1.3 tables_priv錶,columns_priv錶和procs_priv錶
12.1.4 訪問控製:MySQL如何使用Grant錶
12.1.5 更新權限:修改什麼時候生效
12.2 提高MySQL數據庫的安全性
12.2.1 從操作係統角度來保護MySQL
12.2.2 密碼
12.2.3 用戶權限
12.2.4 Web問題
12.3 獲取更多關於數據庫的信息
12.3.1 使用SHOW獲取信息
12.3.2 使用DESCRIBE獲取關於列的信息
12.3.3 用EXPLAIN理解查詢操作的工作過程
12.4 數據庫的優化
12.4.1 設計優化
12.4.2 權限
12.4.3 錶的優化
12.4.4 使用索引
12.4.5 使用默認值
12.4.6 其他技巧
12.5 備份MySQL數據庫
12.6 恢復MySQL數據庫
12.7 實現復製
12.7.1 設置主服務器
12.7.2 執行初始的數據傳輸
12.7.3 設置一個/多個從服務器
12.8 進一步學習
12.9 下一章

第13章 MySQL高級編程
13.1 LOAD DATA INFILE語句
13.2 存儲引擎
13.3 事務
13.3.1 理解事務的定義
13.3.2 通過InnoDB使用事務
13.4 外鍵
13.5 存儲過程
13.5.1 基本示例
13.5.2 局部變量
13.5.3 遊標和控製結構
13.6 進一步學習
13.7 下一章

第三篇 電子商務與安全性
第14章 運營一個電子商務網站
14.1 我們要實現什麼目標
14.2 考慮電子商務網站的類型
14.2.1 使用在綫說明書公布信息
14.2.2 接收産品或服務的訂單
14.2.3 提供服務和數字産品
14.2.4 為産品或服務增值
14.2.5 減少成本
14.3 理解風險和威脅
14.3.1 網絡黑客
14.3.2 不能招攬足夠的生意
14.3.3 計算機硬件故障
14.3.4 電力、通信、網絡或運輸故障
14.3.5 廣泛的競爭
14.3.6 軟件錯誤
14.3.7 不斷變化的政府政策和稅收
14.3.8 係統容量限製
14.4 選擇一個策略
14.5 下一章

第15章 電子商務的安全問題
15.1 信息的重要程度
15.2 安全威脅
15.2.1 機密數據的泄露
15.2.2 數據丟失和數據破壞
15.2.3 數據修改
15.2.4 拒絕服務
15.2.5 軟件錯誤
15.2.6 否認
15.3 易用性,性能、成本和安全性
15.4 建立一個安全政策
15.5 身份驗證原則
15.6 加密技術基礎
15.6.1 私有密鑰加密
15.6.2 公有密鑰加密
15.6.3 數字簽名
15.7 數字證書
15.8 安全的Web服務器
15.9 審計與日誌記錄
15.10 防火牆
15.11 備份數據
15.11.1 備份常規文件
15.11.2 備份與恢復MySQL數據庫
15.12 自然環境安全
15.13 下一章

第16章 Web應用的安全
16.1處理安全性問題的策略
16.1.1 以正確心態為開始
16.1.2 安全性和可用性之間的平衡
16.1.3 安全監視
16.1.4 基本方法
16.2 識彆所麵臨的威脅
16.2.1 訪問或修改敏感數據
16.2.2 數據丟失或破壞
16.2.3 拒絕服務
16.2.4 惡意代碼注入
16.2.5 服務器被攻破
16.3瞭解與我們“打交道”的用戶
16.3.1 破解人員
16.3.2 受影響機器的未知情用戶
16.3.3 對公司不滿的員工
16.3.4 硬件被盜
16.3.5 我們自身
16.4 代碼的安全性
16.4.1 過濾用戶輸入
16.4.2 轉義輸齣
16.4.3 代碼組織
16.4.4 代碼自身的問題
16.4.5 文件係統因素
16.4.6 代碼穩定性和缺陷
16.4.7 執行引號和exec
16.5 Web服務器和PHP的安全性
16.5.1 保持軟件的更新
16.5.2 查看php.ini文件
16.5.3 Web服務器配置
16.5.4 Web應用的商業主機服務
16.6 數據庫服務器的安全性
16.6.1 用戶和權限係統
16.6.2發送數據至服務器
16.6.3 連接服務器
16.6.4 運行服務器
16.7 保護網絡
16.7.1 安裝防火牆
16.7.2使用隔離區域(DMZ)
16.7.3應對DoS和DDoS攻擊
16.8 計算機和操作係統的安全性
16.8.1 保持操作係統的更新
16.8.2隻運行必須的軟件
16.8.3 服務器的物理安全性
16.9 災難計劃
16.10 下一章

第17章 使用PHP和MySQL實現身份驗證
17.1 識彆訪問者
17.2 實現訪問控製
17.2.1 保存密碼
17.2.2 密碼的加密
17.2.3 保護多個網頁
17.3 使用基本身份驗證
17.4 在PHP中使用基本身份驗證
17.5 在Apache的.htaccess文件中使用基本身份驗證
17.6 使用mod_auth_mysql身份驗證
17.6.1 安裝mod_auth_mysql
17.6.2 使用mod_auth_mysql
17.7 創建自定義身份驗證
17.8 進一步學習
17.9 下一章

第18章 使用PHP和MySQL實現安全事務
18.1 提供安全的事務處理
18.1.1 用戶機器
18.1.2 Internet
18.1.3 我們的係統
18.2 使用加密套接字層(SSL)
18.3 屏蔽用戶的輸入
18.4 提供安全存儲
18.5 存儲信用卡號碼
18.6 在PHP中使用加密技術
18.6.1 安裝GPG
18.6.2 測試GPG
18.7 進一步學習
18.8 下一章

第四篇 PHP的高級技術
第19章 與文件係統和服務器的交互
19.1 文件上載
19.1.1 文件上載的HTML代碼
19.1.2 編寫處理文件的PHP
19.1.3 避免常見上載問題
19.2 使用目錄函數
19.2.1 從目錄讀取
19.2.2 獲得當前目錄的信息
19.2.3 創建和刪除目錄
19.3 與文件係統的交互
19.3.1 獲取文件信息
19.3.2 更改文件屬性
19.3.3 創建、刪除和移動文件
19.4 使用程序執行函數
19.5 與環境變量交互:getenv()和putenv()
19.6 進一步學習
19.7 下一章

第20章 使用網絡函數和協議函數
20.1 瞭解可供使用的協議
20.2 發送和讀取電子郵件
20.3 使用其他Web站點的數據
20.4 使用網絡查找函數
20.5 備份或鏡像一個文件
20.5.1 使用FTP備份或鏡像一個文件
20.5.2 上傳文件
20.5.3 避免超時
20.5.4 使用其他的FTP函數
20.6 進一步學習
20.7 下一章

第21章 日期和時間的管理
21.1 在PHP中獲取日期和時間
21.1.1 使用date()函數
21.1.2 使用UNIX時間戳
21.1.3 使用getdate()函數
21.1.4 使用checkdate()函數檢驗日期有效性
21.1.5 格式化時間戳
21.2 在PHP日期格式和MySQL日期格式之間進行轉換
21.3 在PHP中計算日期
21.4 在MySQL中計算日期
21.5 使用微秒
21.6 使用日曆函數
21.7 進一步學習
21.8 下一章

第22章 創建圖像
22.1 在PHP中設置圖像支持
22.2 理解圖像格式
22.2.1 JPEG
22.2.2 PNG
22.2.3 WBMP
22.2.4 GIF
22.3 創建圖像
22.3.1 創建一個背景圖像
22.3.2 在圖像上繪圖或打印文本
22.3.3 輸齣最終圖形
22.3.4 清理
22.4 在其他頁麵中使用自動生成的圖像
22.5 使用文本和字體創建圖像
22.5.1 創建基本畫布
22.5.2 將文本調整到適閤按鈕
22.5.3 放置文本
22.5.4 將文本寫到按鈕上
22.5.5 完成
22.6 繪製圖像與用圖錶描繪數據
22.7 使用其他的圖像函數
22.8 進一步學習
22.9 下一章

第23章 在PHP中使用會話控製
23.1 什麼是會話控製
23.2 理解基本的會話功能
23.2.1 什麼是cookie
23.2.2 通過PHP設置cookie
23.2.3 在會話中使用cookie
23.2.4 存儲會話 ID
23.3 實現簡單的會話
23.3.1 開始一個會話
23.3.2 注冊一個會話變量
23.3.3 使用會話變量
23.3.4 注銷變量與銷毀會話
23.4 創建一個簡單的會話例子
23.5 配置會話控製
23.6 通過會話控製實現身份驗證
23.7 進一步學習
23.8 下一章

第24章 其他有用的特性
24.1 使用eval()函數對字符串求值
24.2 終止執行:die和exit
24.3 序列化變量和對象
24.4 獲取PHP環境信息
24.4.1 找到所加載的PHP擴展部件
24.4.2 識彆腳本所有者
24.4.3 確定腳本最近修改時間
24.5 暫時改變運行時環境
24.6 源代碼加亮
24.7 在命令行中使用PHP
24.8 下一章

第五篇 創建實用的PHP和MySQL項目
第25章 在大型項目中使用PHP和MySQL
25.1 在Web開發中應用軟件工程
25.2 規劃和運行Web應用程序項目
25.3 重用代碼
25.4 編寫可維護代碼
25.4.1 編碼標準
25.4.2 分解代碼
25.4.3 使用標準的目錄結構
25.4.4 文檔化和共享內部函數
25.5 實現版本控製
25.6 選擇一個開發環境
25.7 項目的文檔化
25.8 建立原型
25.9 將邏輯和內容分離
25.10 優化代碼
25.10.1 使用簡單優化
25.10.2 使用Zend産品
25.11 測試
25.12 進一步學習
25.13 下一章

第26章 調試
26.1 編程錯誤
26.1.1 語法錯誤
26.1.2 運行時錯誤
26.1.3 邏輯錯誤
26.2 使用變量幫助調試
26.3 錯誤報告級彆
26.4 改變錯誤報告設置
26.5 觸發自定義錯誤
26.6 巧妙地處理錯誤
26.7 下一章

第27章 建立用戶身份驗證機製和個性化設置
27.1 解決方案的組成
27.1.1 用戶識彆和個性化設置
27.1.2 保存書簽
27.1.3 推薦書簽
27.2 解決方案概述
27.3 實現數據庫
27.4 實現基本的網站
27.5 實現用戶身份驗證
27.5.1 注冊
27.5.2 登錄
27.5.3 登齣
27.5.4 修改密碼
27.5.5 重設遺忘的密碼
27.6 實現書簽的存儲和檢索
27.6.1 添加書簽
27.6.2 顯示書簽
27.6.3 刪除書簽
27.7 實現書簽推薦
27.8 考慮可能的擴展
27.9 下一章

第28章 創建一個購物車
28.1 解決方案的組成
28.1.1 創建一個在綫目錄
28.1.2 在用戶購買商品的時候記錄購買行為
28.1.3 實現一個付款係統
28.1.4 創建一個管理界麵
28.2 解決方案概述
28.3 實現數據庫
28.4 實現在綫目錄
28.4.1 列齣目錄
28.4.2 列齣一個目錄中的所有圖書
28.4.3 顯示圖書詳細信息
28.5 實現購物車
28.5.1 使用show_cart.php腳本
28.5.2 瀏覽購物車
28.5.3 將物品添加到購物庫
28.5.4 保存更新後的購物車
28.5.5 打印標題欄摘要
28.5.6 結賬
28.6 實現付款
28.7 實現一個管理界麵
28.8 擴展該項目
28.9 使用一個已有係統
28.10 下一章

第29章 創建一個基於Web的電子郵件服務係統
29.1 解決方案的組成
29.1.1 電子郵件協議:POP3和IMAP
29.1.2 PHP對POP3和IMAP的支持
29.2 解決方案概述
29.3 建立數據庫
29.4 瞭解腳本架構
29.5 登錄與登齣
29.6 建立賬戶
29.6.1 創建一個新賬戶
29.6.2 修改已有賬戶
29.6.3 刪除賬戶
29.7 閱讀郵件
29.7.1 選擇賬戶
29.7.2 查看郵箱內容
29.7.3 閱讀郵件消息
29.7.4 查看消息標題
29.7.5 刪除郵件
29.8 發送郵件
29.8.1 發送一則新消息
29.8.2 迴復或轉發郵件
29.9 擴展這個項目
29.10 下一章

第30章 創建一個郵件列錶管理器
30.1 解決方案的組成
30.1.1 建立列錶和訂閱者數據庫
30.1.2 上載新聞信件
30.1.3 發送帶附件的郵件
30.2 解決方案概述
30.3 建立數據庫
30.4 定義腳本架構
30.5 實現登錄
30.5.1 新賬戶的創建
30.5.2 登錄
30.6 用戶函數的實現
30.6.1 查看列錶
30.6.2 查看郵件列錶信息
30.6.3 查看郵件列錶存檔
30.6.4 訂閱與取消訂閱
30.6.5 更改賬戶設置
30.6.6 更改密碼
30.6.7 登齣
30.7 管理功能的實現
30.7.1 創建新的郵件列錶
30.7.2 上載新的新聞信件
30.7.3 多文件上載的處理
30.7.4 預覽新聞信件
30.7.5 發送郵件
30.8 擴展這個項目
30.9 下一章

第31章 創建一個Web論壇
31.1 理解流程
31.2 解決方案的組成
31.3 解決方案概述
31.4 數據庫的設計
31.5 查看文章的樹型結構
31.5.1 展開和摺疊
31.5.2 顯示文章
31.5.3 使用treenode類
31.6 查看單個的文章
31.7 添加新文章
31.8 添加擴充
31.9 使用一個已有的係統
31.10 下一章

第32章 生成PDF格式的個性化文檔
32.1 項目概述
32.1.1 評估文檔格式
32.2 解決方案的組成
32.2.1 問題與迴答係統
32.2.2 文檔生成軟件
32.3 解決方案概述
32.3.1 提問
32.3.2 給答題評分
32.3.3 生成RTF證書
32.3.4 從模闆生成PDF證書
32.3.5 使用PDFlib生成PDF文檔
32.3.6 使用PDFlib的一個“Hello World”程序
32.3.7 用PDFlib生成證書
32.4 處理標題的問題
32.5 擴展該項目
32.6 下一章

第33章 使用XML和SOAP來連接Web服務
33.1 項目概述:使用XML和Web服務
33.1.1 理解XML
33.1.2 理解Web服務
33.2 解決方案的組成
33.2.1 使用Amazon的Web服務接口
33.2.2 XML的解析:REST響應
33.2.3 在PHP中使用SOAP
33.2.4 緩存
33.3 解決方案概述
33.3.1 核心應用程序
33.3.2 顯示特定種類的圖書
33.3.3 獲得一個AmazonResultSet類
33.3.4 使用REST發送和接收請求
33.3.5 使用SOAP發送和接收請求
33.3.6 緩存請求返迴的數據
33.3.7 創建購物車
33.3.8 到Amazon付賬
33.4 安裝項目代碼
33.5 擴展這個項目
33.6 進一步學習

第34 章使用Ajax構建Web 2.0應用
34.1 Ajax 是什麼?
34.1.1 HTTP請求和響應
34.1. 2 DHTML和XHTML
34.1.3 級聯樣式單(CSS)
34.1.4 客戶端編程
34.1.5 服務器端編程
34.1.6 XML和XSLT
34.2 Ajax基礎
34.2.1 XMLHTTPRequest對象
34.2.2 與服務器通信
34.2.3 處理服務器響應
34.2.4 整閤應用
34.3 在以前的項目添加Ajax元素
34.3.1在PHPBookmark應用中添加Ajax元素
34.4 進一步學習
34.4.1 進一步瞭解文檔對象模型(DOM)
34.4.2 Ajax應用可用的JavaScript函數庫
34.4.3 Ajax開發人員網站

第六篇 附錄
附錄A 安裝PHP及MySQL
附錄B Web資源
第1章 PHP快速入門教程
第2章 數據的存儲與檢索
第3章 使用數組
第4章 字符串操作與正則錶達式
第5章 代碼重用與函數編寫
第6章 麵嚮對象的PHP
第7章 錯誤和異常處理

精彩書摘

  5.1 代碼重用的好處
  軟件工程師的一個目標就是通過重復使用代碼來避免編寫新的代碼。這樣做並不是因為他們懶,而是因為重新使用已有的代碼可以降低成本、增加代碼的可靠性並提高它們的一緻性。在理想情況下,一個新的項目是這樣創建的:它將已有的可重新利用的組件進行組閤,並將新的開發難度降低到最小。
  5.1.1 成本
  在一個軟件的有效生命周期中,相當多的時間是用在維護、修改、測試和文檔化記錄上,而不是最初花在編碼上的時間。如果要編寫商業代碼,應該盡量限製結構中所用到的代碼行數。一個最常使用的方法就是:重新使用已有的代碼,而不是為一個新任務編寫一個和原來代碼隻有微小區彆的新代碼。更少的代碼意味著更低的成本。如果市場上已經存在能夠滿足需求的軟件,那就購買軟件。購買已有軟件的成本總是要小於開發一個等價産品的成本。如果有現成的軟件基本上能夠滿足要求,那就必須小心地使用它。修改已有的代碼可能會比編寫新代碼更加睏難。
  5.1.2 可靠性
  如果一個模塊代碼已經在代碼結構中使用瞭,可以認為它是已經通過測試的。即使代碼隻有幾行,在重寫時仍然可能忽略兩方麵的內容,一是原作者融入其中的某些東西,二是代碼測試發現缺陷後,對原來代碼添加的一些東西。使用現存的成熟的代碼通常要比新鮮的“綠色”代碼更可靠。
  5.1.3 一緻性
  係統的外部接口應該是一緻的,其中包括用戶接口和係統的外部接口。編寫一段新的並且能夠和係統函數的其他部分保持一緻的代碼需要花些心思和努力。如果重復使用運行在係統其他部分的代碼,所實現的功能自然就會達到一緻。
  除瞭這些優點外,隻要原來的代碼是模塊化的而且編寫良好,那麼重復使用代碼還會節省許多工作。在工作時,可以試著辨認一下今後可能再次要調用的代碼段。
  5.2 使用require()和include()函數
  PHP提供瞭兩個非常簡單卻很有用的語句,它們允許重新使用任何類型的代碼。使用一條require()或include()語句,可以將一個文件載入到PHP腳本中。通常,這個文件可以包含任何希望在一個腳本中輸入的內容,其中包括PHP語句、文本、HTML標記、PHP函數或PHP類。
  這些語句的工作方式類似於大多數Web服務器提供的服務器端包含方式以及C語言或C++中的#include語句。
  require()和include()幾乎是相同的。二者唯一的區彆在於函數失敗後,require()函數將給齣一個緻命的錯誤。而include()隻是給齣一個警告。
  require()和include()也有兩個變體函數,分彆是require_once()和include_once()。正如你可能猜到的,這兩個函數的作用是一個被引入(included)的文件隻能被引入一次。對於我們已經介紹過的例子——頁眉和腳注(header and footer)——這個功能並不是非常有用。
  當使用require()和include()來引入函數庫時,它們纔非常有用。使用這兩個函數可以防止錯誤的引入同樣的函數庫兩次,從而齣現重復定義的錯誤。如果關心編碼實踐,可以考慮使用require()和include(),因為它們的運行速度較快。
  5.2.1 文件擴展名和require()函數
  如下所示的代碼保存於reusable.php文件中:
  如下所示的代碼保存於main.php文件中:
  如果載入reusable.php,當瀏覽器中顯示齣“Here is a very simple PHP statement”時,你不會感到奇怪。如果載入main.php,則會發生一件更有趣的事情。該腳本輸齣結果如圖5-1所示。
  當需要一個文件的時候,可以使用require()語句。在前麵的例子中,我們使用的文件是reusable.php。當運行該腳本時,require()語句:
  將被請求的文件內容代替,然後再執行腳本。這就意味著,當載入main.php文件時,它會像如下所示的代碼那樣執行:
  當使用require()語句時,必須注意處理文件擴展名和PHP標記的不同方式。
  PHP並不會查看所需文件的擴展名。這就意味著,隻要不想直接調用這個文件,就可以任意命名該文件。當使用require()語句載入文件時,它會作為PHP文件的一部分被執行。 通常,如果PHP語句放在一個HTML文件(例如,名為page.html的文件)中時,它們是不會被處理的。PHP通常用來解析擴展名被定義成如.php的文件。(在Web服務器配置文件中可能不是這樣)但是,如果通過require()語句載入這個page.html,文件內的任何PHP命令都會被處理。因此,可以使用任何擴展名來命名包含文件,但要盡量遵循一個約定,例如將擴展名命名為.inc是一個很好的辦法。
  需要注意的一個問題是,如果擴展名為.inc或一些其他的非標準擴展名的文件保存在Web文檔樹中,而且用戶可以在瀏覽器中直接載入它們,用戶將可以以普通文本的形式查看源代碼,包括任何密碼。因此,將被包含文件保存在文檔樹之外,或使用標準的文件擴展名是非常重要的。
  提示:
  在這個例子中,可重用文件(reusable.php)代碼如下所示:
  我們將文件中的PHP代碼放到PHP標記之間。如果希望一個所需文件中的PHP代碼能
  被當成PHP代碼進行處理,就必須這樣做。如果不使用PHP標記,代碼將會被視為文本或者HTML腳本,因此也就不會被執行。
  5.2.2 使用require()製作Web站點的模版
  如果Web頁麵具有一緻的外觀,可以在PHP中使用require()語句將模版和標準元素加
  到頁麵中。
  例如,一個虛構的TLA谘詢公司的網站有許多頁麵,這些頁麵的外觀看上去都如圖5-2所示。當需要一個新頁麵的時候,開發人員可以打開一個已有頁麵,從文件中間剪切所需的文本,輸入所需的新文本,然後以新的文件名保存。
  考慮這種情況:網站已經存在瞭一段時間,如今已有數十個、數百個甚至數韆個頁麵都是同一種風格。現在,要對標準外觀進行部分修改—這種修改可能是很微小的改變,例如,在每個腳注上加一個電子郵件地址,或者加上一個新的導航菜單入口。你希望對這數十個、數百個甚至數韆個頁麵都做這種微小的修改嗎?
  相對於剪切粘貼數十個、數百個甚至數韆個頁麵,直接重用各個頁麵中通用的HTML代碼部分是一個更好的辦法。程序清單5-1給齣瞭圖5-2所示頁麵(home.html)的源代碼。
  ……

前言/序言



用戶評價

評分

聖經,果斷入手,但是一直閑放,沒看多少。不是內容不好,是個人太懶瞭。總抽不齣時間看。

評分

一口氣買瞭五本,第一次想認真的學習下,不知道自己能不能看得懂

評分

web開發的人可以買來藉鑒一下。

評分

有點基礎,跳著看,遇到問題,翻齣來參考參考,挺實用的。

評分

這個書一般化吧,紙張太薄瞭,稍微不注意就會弄破,而且整體沒啥質感。這個價格感覺也就一般化吧。印刷不是太清晰

評分

很經典的一本書,作為參考使用吧。

評分

東西還是不錯,PHP基礎可以看看,不過對於現在的技術明顯有些老瞭。

評分

貨品收到瞭,送貨速度非常及時,這本書,包裝還算是比較精美,內容寫的也比較實用不錯不錯,的確是一本值得收藏的好書。

評分

很經典的一本書,作為參考使用吧。

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有