簡體   English   中英

如何組織一個PHP博客

[英]How to organize a PHP blog

因此,當前我正在根據文件名來組織博客:要創建帖子,請輸入文件名。 與將帖子存儲在數據庫中不同,我將它們存儲在PHP文件中。 因此,每次創建帖子時,都會在表中使用文件名和唯一ID創建新行。 要引用該帖子(例如,發表評論),請獲取當前文件的名稱,然后在條目表中搜索匹配的文件名。 評論的帖子ID與該帖子的ID相匹配。

顯然,這不是組織博客的標准方法,但是出於以下幾個原因,我這樣做:

  • 干凈的URL(甚至比mod_rewrite還干凈的URL可以從我閱讀的內容中得出)
  • 我的機器上總是貼有該帖子的紙質副本
  • 更容易記住特定帖子的網址(部分純凈網址)

現在,我知道標准方法是將每個帖子存儲在數據庫中。 我知道該怎么做,但是干凈的URL是主要問題。 所以現在我的問題是:

  • 我現在的做法有什么錯誤,還是將來會出現任何問題?
  • 使用mod_rewrite是否可以達到我現在可以獲得的相同級別的干凈URL? 如果是這樣,贊賞鏈接
  • 我將在虛擬主機上托管它。 是僅某些Web主機提供對mod_rewrite所需文件的訪問,還是通常在所有Web主機上都是標准的?

非常感謝你們!

PS:要明確一點,我不打算使用博客引擎。

正如cletus所說,這類似於Movable Type。 將數據存儲在文件中並沒有天生的錯誤。

我想到的一件事是:您在文件中存儲了多少? 只是帖子內容,還是每個PHP文件都包含頁面整個設計的副本,而不是使用基本模板? 以后更改設計會有多困難? 這可能是問題,也可能不是問題。

您究竟在尋找干凈的URL呢? 重寫規則非常強大和靈活。 通過將mod_rewrite與可響應所有請求的主PHP文件結合使用,您幾乎可以擁有所需的任何URL格式,包括用戶界面友好的URL,而這些ID不會含糊不清的ID號甚至文件擴展名。

編輯:

這是與mod_rewrite和一個處理請求的主要PHP文件一起使用的方式:

  1. Web服務器將所有請求(例如,/ my-post-title)傳遞給index.php
  2. index.php解析請求路徑(“ my-post-title”)
  3. 在數據庫的“ slug”或“ friendly name”(無論您要調用什么名稱)列中查找“ my-post-title”,並以這種方式找到適當的行
  4. 從數據庫中檢索帖子
  5. 將模板應用於帖子數據
  6. 將完成的頁面返回給客戶端

本質上,這就是Drupal和WordPress之類的系統的工作方式。

另外,關於Movable Type的工作方式,由於我已經使用了一段時間,所以我可能是錯的,但是我相信它會將所有帖子存儲在數據庫中。 當您單擊“發布”按鈕時,它將通過從數據庫中提取發布數據並將其插入模板來生成純HTML文件。 當您的網站負載沉重時,這效率非常高-訪客打開您的網站時,沒有腳本正在運行,並且服務器僅需要提供靜態文件時,就可以保持訪問量大。

因此,很顯然,在確定解決方案的工作方式時,您有很多選擇。 您提出的建議聽起來不錯,盡管您可能需要仔細考慮如何在單個文件中維護大量帖子,尤其是如果您以后想要更改整個網站的設計時,尤其如此。 例如,您可能需要考慮使用像Smarty這樣的模板引擎,並且僅將帖子數據(不包含布局標簽)存儲在您的單個文件中。 或者只是在帖子文件中使用一些基本的include()語句來獲取頁眉,頁腳,導航菜單等。

您所描述的就像是Movable Type的工作方式。 您需要解決的問題是:

  • 聯合發布:RSS / Atom;
  • 網站地圖:適用於Google;
  • 評論;
  • 標記和過濾內容。

不使用數據庫並非沒有道理。 如果要這樣做,我將使用像Smarty這樣的模板引擎,其緩存結果要比現成的PHP更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM