网 站 维 护 常 常 碰 到 的 一 个 问 题 是, 网 站 的 结 构 已 经 固 定, 却 为 了 更 新 一 点 内 容 而 不 得 不 重 做 一 大 批 网 页。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 代 码。