作為構建動態網頁的一種語言,PHP 提供了一種簡化的方法來構造復雜而功能強大的與 Web 相關的程序。 Erik 用一個原始的、現實世界的網站示例逐步說明了 PHP 的基本原理。本系列文章(共兩篇)的第 2 部分介紹發送模塊如何向讀者呈現 一個故事菜單,並說明編輯模塊如何使作者能將故事提交給 Webzine。
簡介
如果您是初次接觸PHP,您可能會驚喜地發現在實踐中它是多麼易於使用。本文旨在使您對 PHP的工作方式留下一個好的印象; 隨後您就可以確定它是否適合您。
在本文的 第 1 部分,我介紹了Webzine 這個簡單 PHP 應用程序的發送部分。盡管只有大約 3K的代碼,但它包含了許多功能。您已試用了這個應用程序,並開始研究它的後台工作方式。我說明了應用程序如何向用戶顯示類別菜單並根據選擇顯示故事。我還使讀者對PHP應用程序的工作方式以及它們從調用頁接收參數的方式有了一定的了解。
故事菜單
本文是第 2部分,您首先會了解到發送模塊是如何將故事菜單呈現給讀者的,然後還會快速查看一下使作者能向Webzine 提交故事的編輯模塊。
文件中的每個故事在主題菜單文件中都有對應的一行。我已決定將脫字符號("^")用作定界符來分隔文件中的不同項目,但您可以使用任何字符(制表符是一種通用的選擇)。下面是基本的布局:
故事編號^標題^圖像 URL^摘要
舉例來說,僅包含三個故事的主題菜單文件 (TradeShow.txt)可能如下所示:
清單 1. 包含三個故事的主題菜單文件
33^Great New Products This Year^/images/proddemo.jpg^Thursday's product demo ...
12^Opening Event Well Attended^/images/opnfoto.jpg^Ticket sales to the ...
5^Trade Show Opens^/images/tradelogo.gif^The Fourth Annual Trade Show ...
菜單驅動程序接受這些信息並向讀者提供一個故事概述。其工作方式如下:
首先,驅動程序將適當的條目編號從主題菜單文件復制到數組 $stories 中。對於上面的示例, $stories[0] 包含第一行(故事編號為 33), $stories[1] 包含故事編號 12, $stories[2] 包含故事編號5。您還需要統計數組中的元素個數,並將其保存在變量 $numstories 中。
下一步,驅動程序將此信息提供給用戶,如下所示:
清單 2.驅動程序
for ($i=0; $i<$numstories; $i++) {
$storyinfo = split("\^", $stories[$i]);
$storynum = $storyinfo[0]; // 故事編號(例如 33)
$storydesc = $storyinfo[1]; // 故事標題(例如 "Great New Products This Year")。
$storyimg = $storyinfo[2]; // 圖像 URL(例如 "/images/proddemo.jpg")。
$dtext = $storyinfo[3]; // 故事摘要(更長的文本說明)。
$url = "<a href=\"index.php3?topic=$topic&story=$storynum\">$storydesc</a><br>";
if ($i<10) {
$url = "<h2>" . $url . "</h2>";
if ($storyimg != "") {
$url = "<p><img align=" . ($i%2==1 ? "right" : "left")
. " src=\"$storyimg\"></p>\n"
. $url;
}
$url = "<hr>" . $url;
} else {
$url = "<h3>" . $url . "</h3>";
}
echo("$url\n");
echo("<p>$dtext</p>\n");
}