網 站 維 護 常 常 碰 到 的 一 個 問 題 是, 網 站 的 結 構 已 經 固 定, 卻 為 了 更 新 一 點 內 容 而 不 得 不 重 做 一 大 批 網 頁。php 提 供 了 一 種 簡 單、 有 效 的 方 法 來 解 決 這 一 問 題, 它 將 一 個 網 站 的 基 本 結 構 放 在 幾 個 簡 單 的html 文 件 中( 我 們 可 以 稱 其 為 模 板), 以 后 我 們 要 做 的 只 是 將 文 本 傳 到 服 務 器, 讓 程 序 按 照 模 板 自 動 生 成 網 頁, 從 而 使 得 管 理 大 型 網 站 變 得 越 來 越 容 易。
★ 步 入php
如 果 您 想 創 建 一 個 在 線 的 目 錄, 一 般 會 希 望 建 立 一 個 公 共 設 計 模 板, 目 錄 中 所 有 網 頁 都 可 以 此 模 板 為 框 架 自 動 產 生。 首 先 由 主 頁 制 作 人 員 制 作 出 具 有 代 表 性 的 html 文 本, 所 有 不 同 內 容 的 網 頁 都 能 由 該 模 板 結 構 表 達, 然 后 由 程 序 人 員 進 行 處 理, 將 該 模 板 的 需 變 化 成 分 進 行 變 量 替 換。 特 別 在 數 據 庫 應 用 中, 使 用php, 應 用 程 序 將 數 據 記 錄 從 數 據 庫 中 提 取 出 來, 然 后 應 用 模 板 動 態 生 成 網 頁, 數 據 記 錄 將 精 確 地 顯 示 在 網 頁 的 相 應 位 置。
若 數 據 是 網 頁 內 容, 那 我 們 就 可 以 通 過 數 據 庫 來 管 理 網 站。 這 種 方 式 的 優 點 在 于, 消 除 了 重 復 內 容, 簡 化 了 日 常 維 護, 而 且 便 于 檢 索。 您 所 要 做 的 僅 僅 是 把 一 大 堆 文 本 資 料 粘 貼 進form, 然 后 提 交 給 數 據 庫 即 可。
★php 工 作 原 理
如 果 您 創 建 了 一 個php 應 用 程 序, 實 際 上 相 當 于 創 建 了 一 個php 腳 本 文 件。 在 服 務 器 將 輸 出 信 息 發 送 到 客 戶 端 之 前, 網 絡 服 務 器 會 率 先 將 文 件 中 的php 語 言 進 行 加 工 處 理。 如 果 您 的 服 務 器 不 支 持php, 通 常 情 況 下, 網 絡 服 務 器 會 直 接 將 超 文 本 文 件 送 到 客 戶 的 瀏 覽 器 上 以 表 示 對http 的 要 求 作 出 應 答; 如 果 您 的 服 務 器 支 持php, 則 在 服 務 器 響 應 一 個 對php 文 件 的 請 求 時, 會 進 行 下 列 處 理:
首 先 在 一 個php 文 件 內, 標 準 的html 編 碼 會 被 直 接 送 到 瀏 覽 器 上, 而 內 嵌php 程 序 卻 是 先 被 網 絡 服 務 器 解 釋 執 行。 如 果 是 標 準 輸 出 的 話, 輸 出 信 息 也 將 作 為 標 準 的html 而 被 送 至 瀏 覽 器。
★php 應 用 實 例
下 面 是 一 個 常 用 的“hello” 示 范 程 序:
< html >
< head >< title >
my first php script< /title >< /head >
< body >
< ? echo(“hello world!"); ? >
< /body >
< /html >
請 注 意 標 記 在 上 面 文 檔 中 的 兩 個 “〈 ? … ?〉”, 這 種 結 構 表 明 了php 命 令 會 被 服 務 器 翻 譯, 而 不 是 直 接 傳 送 至 客 戶 端。 您 完 全 可 以 根 據 自 己 的 設 計 思 路, 在 超 文 本 文 件 中 運 用 或 拋 棄php 代 碼 段。 這 個 程 序 非 常 簡 單, 您 根 本 不 需 用php 去 創 建 這 樣 頁 面, 它 要 做 的 全 部 事 情 就 是 運 用echo 命 令 去 顯 示“hello world”。 使 用echo, 您 可 以 打 印 出 附 有 引 號、 變 量 或 兩 者 相 結 合 的 字 符 串。 在echo 命 令 的 結 尾 您 可 以 看 到 一 個 分 號, 差 不 多 每 一 個php 命 令 都 是 以 分 號 來 結 尾 的。
您 可 以 在 瀏 覽 器 中 觀 看 到 執 行 效 果。 當 然, 我 們 還 可 用view source 觀 察html 源 代 碼:
< html >
< head >< title >
my first php< /title >< /head >
< body >
hello world!
< /body >
< /html >
我 們 發 現 文 檔 中 的html 被 直 接 傳 了 回 來, 而php 代 碼 段 得 到 了 執 行, 打 出 了“hello world!” 字 樣。 正 如 您 所 見,php 代 碼 在 客 戶 端 是 不 可 見 的, 客 戶 端 只 能 看 到 它 執 行 的 結 果。 其 優 點 在 于 能 保 護 文 檔 資 料 中 用php 書 寫 的 源 代 碼, 這 就 意 味 著, 未 經 允 許, 原 始 的php 代 碼 是 不 能 下 載 和 復 制 的。
下 面 我 們 看 一 個 利 用 循 環 來 生 成 網 頁 的 實 例, 主 要 是 通 過php 的 變 量 代 換 來 動 態 生 成 一 個html 文 件( 請 看 程 序 注 解):
< html >
< head >< title >
php font chart< /title >< /head >
< body >
< table >
< ?
for( $ir = 0; $ir < = 255; $ir += 51)
{ // 一 個for 循 環 $ir 從0 到255, 且 增 量 為51
for( $ig = 0; $ig < = 255; $ig += 51)
{ // 一 個for 循 環 $ig 從0 到255, 且 增 量 為51
? >< ! - - - 靜 態 的html 標 記 可
在 循 環 中 循 環 輸 出,
好 像print 出 的 一 樣 - - - >
< tr >
< ? for( $ib = 0; $ib <= 255; $ib += 51)
{ // 一 個for 循 環
$ib 從0 到255, 且 增 量 為51
? >
< td >
< font color=“
< ?
printf(“ %02x %02x %02x”,
$ir, $ig, $ib); ? >" >
font # < ? printf(“ %02x %02x %02x",
$ir, $ig, $ib);// 打 出html 顏 色 代 碼 ? >
< /font >
< /td >
< ? } ? >
< /tr >
< ? } } ? >
< /table >
< /body >
< /html >
執 行 上 述 程 序 將 打 印 出 一 個 很 酷 的 顏 色 表, 這 個 顏 色 表 在html 編 制 中 十 分 有 用。 現 在, 所 有 的 瀏 覽 器 都 能 觀 看 這 個 效 果 了, 讀 者 可 上 網 查 閱 生 成 的html 代 碼。
新聞熱點
疑難解答