PHP例解Webzine編輯和發送二

接上一篇PHP例解Webzine編輯和發送(一) 清單 3:創建 HTML 表 <?php for ($i=0; $i<$elems; $i++) { $item = trim($cats[$i]); $ifile = ereg_replace(" ","",$item); $color = ($ifile == $topic) ? "pink" : "silver"; $url = "index.php3?topic=$ifile"; $anchor = " " . ($item != $topic ? "$item" : "$item") . " "; echo(" $anchor
"); } ?> 這個表以 HTML 模式開始和結束,但其大部分中間過程都處於PHP模式下。現在我們逐行分析這個示例。它以HTML模式開始(這是PHP的正常開始模式)。表的邊框寬度為 1: 現在,切換到PHP模式: <?php for 循環將從0開始,一直到元素的總數減1為止(因為它使用的是 < 而不是 <=)。換句話說,如果有3個元素,則將以0/1/2迭代它們: for ($i=0; $i<$elems; $i++) { trim 函數將刪除前導/尾隨空格並返回。這是必不可少的,因為用來讀取類別文件內容的 file函數將在每個類別名的最後保留尾隨換行字符。所以這將把 "Politics
"轉換為 "Politics"。 $item = trim($cats[$i]); 下面是一個“搜索並替換”操作,用來去掉 $item中的空格,並將結果存放在 $ifile 中。所以主題名 "The Arts" 將變為 "TheArts"。 在向網頁傳遞參數(index.php3?topic=TheArts) 以及指定主題文件名(如TheArts.txt)時,主題名很有幫助。如果您沒有必要關心空格,則會更加簡單。 $ifile = ereg_replace(" ","",$item); $color 的賦值使用三元運算符 ?:(它有與 C 類似的語法test?truevalue:falsevalue),以為選定的主題將$color 變量設置為 pink 或者 silver。 $color = ($ifile == $topic) ? "pink" : "silver"; 每個菜單項與一個 URL 相關聯;所以如果主題為 "Politics",則URL將為 index.php?topic=Politics。PHP提供引號內的變量名替換。因此,在這個表達式中,$ifile變量的內容隻在運行時替換引號中的$ifile。許多人發現這比用連接操作符顯式地利用引號中的元素和變量名構建字符串更加容易。 $url = "index.php3?topic=$ifile"; 在PHP中,句點操作符表示連接。我仍然使用 ?: 運算符在此賦值操作中插入一個條件。如果當前項(比如說,Politics)不是選定的主題,則anchor是 Politics。如果選定的主題是Politics,則anchor就是 Politics。在任一種情況下,anchor 兩側都有空格。 echo(" $anchor
"); 下面的echoe語句將指定的字符串插入輸出流(即,HTML網頁的正文)中。所以可以使用這條語句插入整個表行。在字符串中使用"可以插入一個引號字符。上面計算出的$color和$anchor變量自動代入它們的引用位置: echo(" $anchor
"); for 循環的結束: } 再次從PHP模式返回HTML模式: ?> 類別菜單的HTML表的結束: 對程序創建過程的分析到此結束! 故事的表示 一旦選定一個故事,您就需要將這個故事的正文從故事文件打印到當前的網頁上。(編輯模塊author.php3 以正確的 HTML格式準備這個故事。)這是個簡單的過程。在下面的代碼段中,假定故事編號存儲在變量$story 中。如果 $story 等於33,則這個故事的文件為 s33.txt。 $storyfile = fopen("s$story.txt","r"); fpassthru($storyfile); 在上例中,fopen函數打開一個文件,並返回該文件的一個句柄,然後通過賦值運算符將這個句柄保存在變量$storyfile 中。fpassthru函數將文件的內容復制到當前的輸出設備(輸出HTML文件),並自動關閉該文件。 內容預告 本文(第 1.2 部分)介紹瞭 Webzine 這個簡單PHP應用程序的第一部分,並詳細分析瞭幾小段代碼示例。(應用程序的這部分代碼大小隻有2K,所以沒有許多大型的代碼示例供我們選擇!)這應該使您對PHP的強大功能有瞭很好的體驗,但後面的內容還多著呢。 下一部分的篇幅與前面大致相同。我將說明故事菜單的表示是如何呈現在讀者面前的,從而完成對發送模塊的討論。然後我將討論允許作者提交故事的編輯模塊。雖然編輯模塊比發送模塊大得多,但我們不會如此詳細地討論它:我們隻需要說明與發送模塊不同的那些有趣概念。 參考資源 PHP.net是 PHP語言的官方主頁。在這裡您可以免費下載PHP的最新版本,還可以查看PHP開發的發展方向。這裡還有一個常見問題解答、一個手冊以及許多其他資源。 PHPbuilder.com面向的是開發人員,其中包含大量的文章和代碼樣例、零活登記以及到PHP資源的鏈接。 Webmonkey的PHP部分包含有關PHP的大量入門級文章。

發佈留言