2013-07-12 142 views
0

我在PHP方面並不是特別經驗豐富,但我一直在試圖爲朋友的網站創建一個基本的博客。我認爲現在要做的最簡單的事情就是使用靜態文件,所以我使用XML來存儲博客條目。我設法完美地設置它,因爲我可以根據需要顯示帖子。不過,我現在想要一個導航欄,它可以讓我根據日期選擇帖子,就像大多數博客一樣。這些文件被簡單地命名爲1.xml,2.xml,3.xml等,所以我可以遍歷它們。下面是顯示數據數組如何組織的代碼(它是數組中的一個數組,因此第一個級別將等於文件名+1中的數字)。所以我在處理這些數據時如何創建導航欄(ul,li等)有很多麻煩。據推測,我需要幾年時間才能保持獨特,然後幾年中的每個月都是獨一無二的,並且還有日子,然後我可以讓每個標題(顯然是一個鏈接)在適當的日期之下。PHP博客(遍歷數組數據)

$data = array(); 

for ($i = 1; $i <= $numberOfPosts; $i++) { 
    $filename = './blogentries/' . $i . '.xml'; 
    if (!file_exists($filename)) 
     throw new Exception(); 

    $blogentry = simplexml_load_file($filename); 

    $title = $blogentry->title; 
    $dateD = $blogentry->date->day; 
    $dateM = $blogentry->date->month; 
    $dateY = $blogentry->date->year; 
    if (strlen($dateY) === 2) $dateY = '20' . $dateY; 
    $entryParagraphs = $blogentry->entry->children(); 

    $data[] = array(
      (string)$title, 
      array(
       (string)$dateY, 
       (string)$dateM, 
       (string)$dateD 
      ), 
      $entryParagraphs 
     ); 
} 

感謝您的任何幫助,您可以給。對不起,如果我沒有像我一樣雄辯,我希望你會原諒我的相對無知!

+5

'我在PHP方面並不是特別有經驗,但我一直在努力爲一個朋友的網站創建一個基本的博客。**使用wordpress ** – hek2mgl

+0

爲什麼你使用xml你可以使用mysql或者不需要rdbms –

+0

@ hek2mgl好點,但我真的很想學習如何爲我自己做這件事。我意識到到目前爲止我可能已經弄得一團糟(或者我可能沒有?),但如果任何人都可以給我任何指示,我可以解決這個問題,非常感謝! –

回答

1

從我所瞭解的情況來看,我會選擇這種類型的解決方案: 首先,如果您確實知道一點OOP,請創建一個文章類。

之後,下面是我所要做的: 而不是創建一個數組(它實際上應該是一個類,(第一個數組,我不知道你是否意識到這一點) ,我會做這個數組:

$data[$dateY][$dateM][$dateD]=$blogentry; 

然後,你有你的所有年份分類的文章,然後一個月,然後一天,所以就變得很簡單你的要求來結束

編輯: 當我說它應該是一個班,我正在談論這個數組:

array(
     (string)$title, 
     array(
      (string)$dateY, 
      (string)$dateM, 
      (string)$dateD 
     ), 
     $entryParagraphs 
    ) 

這是典型的課程設計。

+0

根據我的理解,你的問題是「我如何讓我的文章按年分類,然後按月,然後按天分類」,這是我寫的解決方案。似乎我誤解了,你能更準確地知道你想要什麼嗎? – MisterJ

+0

對不起,在你詳細闡述你的答案之前,我寫過了。 :)我將不得不看看這是否有效,並回到你身邊。 –

+0

我得到的只是這個錯誤消息:非法的偏移類型在C:\ wamp \ www \ blog \ index2.php 49行 –