### PHP： 网 站 维 护 轻 松 了

网 站 维 护 常 常 碰 到 的 一 个 问 题 是， 网 站 的 结 构 已 经 固 定, 却 为 了 更 新 一 点 内 容 而 不 得 不 重 做 一 大 批 网 页。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(“ ％02 X ％02X ％02X”,
＄iR, ＄iG, ＄iB); ? >" >
Font ＃ < ? printf(“ ％02X ％02X ％02X",
＄iR, ＄iG, ＄iB);// 打 出 HTML 颜 色 代 码 ? >
< /FONT >
< /TD >
< ? } ? >
< /TR >
< ? } } ? >
< /TABLE >
< /BODY >
< /HTML >
执 行 上 述 程 序 将 打 印 出 一 个 很 酷 的 颜 色 表, 这 个 颜 色 表 在 HTML 编 制 中 十 分 有 用。 现 在， 所 有 的 浏 览 器 都 能 观 看 这 个 效 果 了， 读 者 可 上 网 查 阅 生 成 的 HTML 代 码。