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