首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 實例教學(二):深入 Webzine 編輯模組與故事選單驅動邏輯

     編輯:PHP 綜合知識

故事選單驅動程式細節

每個主題對應一個選單檔(如 TradeShow.txt),格式:

故事編號^標題^圖片URL^摘要

驅動程式讀取檔案到陣列 $stories,$stories[0] 為最新文章。

顯示邏輯完整代碼

for ($i = 0; $i < $numstories; $i++) {
    $storyinfo = split("\^", $stories[$i]);
    $storynum  = $storyinfo[0];  // 如 33
    $storydesc = $storyinfo[1];  // 標題
    $storyimg  = $storyinfo[2];  // 圖片 URL
    $dtext     = $storyinfo[3];  // 摘要

    $url = "<a href=\"index.php?topic=$topic&story=$storynum\">$storydesc</a><br>";
    if ($i < 10) {
        $url = "<h2>$url</h2>";
        if ($storyimg != "") {
            $align = ($i % 2 == 1) ? "right" : "left";
            $url = "<p><img align=$align src=\"$storyimg\"></p>\n$url";
        }
        $url = "<hr>$url";
    } else {
        $url = "<h3>$url</h3>";
    }
    echo $url;
    echo "<p>$dtext</p>\n";
}

編輯模組(投稿)流程

  1. 表單包含:主題下拉選單、標題、摘要、全文、圖片 URL。
  2. 預覽功能:送出前以相同顯示邏輯渲染預覽。
  3. 送出處理:
    • 驗證必填欄位。
    • htmlspecialchars() 轉義所有標籤,再放行 <b><i><u><a><img> 等安全標籤(以正則還原)。
    • 產生新文章編號(遞增計數器)。
    • 寫入文章內容檔 33.txt。
    • 在主題選單檔最前面插入新行 33^標題^圖片^摘要。

安全過濾代碼片段

// 先全轉義
$body = htmlspecialchars($body);
// 再還原允許標籤
$allowed = array('b','i','u','a','img','br','p');
foreach ($allowed as $tag) {
    $body = preg_replace("/<\/?$tag( [^>]*)?>/i", "<$tag$1>", $body);
}

檔案鎖定與並發

寫入選單檔時使用 flock() 獨佔鎖,避免多用戶同時投稿導致資料遺失。

擴充建議

  • 改用 SQLite/MySQL 儲存,支援搜尋、分頁、分類管理。
  • 加入使用者認證、角色權限(編輯/審核/管理員)。
  • 引入模板引擎(Smarty/PHPLib)分離邏輯與呈現。
  • 支援 RSS/Atom 輸出、評論系統、標籤雲。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved