2013-07-03 103 views
-2

我正在開發一個PHP最小的博客系統,它應該通過掃描postX.txt文件的文件夾來工作,然後顯示每個帖子從最新到最舊。 對於單個博客文章,這工作得很好:循環使用foreach,PHP

http://pastebin.com/i3hiLWGd

post1.txt包含類似:

<?php 
    $post_user="Frash23"; 
    $post_title="loltitle 2"; 
    $post_content="<p>lolcontent post 2</p>"; 
    $post_info="lolinfo post 2"; 
?> 

輸出正確的博客文章。 下面的代碼不會:

http://pastebin.com/HdtgMBPV

正如你可以看到,這是相同的代碼與添加的foreach。回聲$ file1輸出「post2.txt post1.txt」,那麼爲什麼這不起作用?所有變量(在通過chrome的firebug克隆檢查HTML時)都不起作用。 (即博客/用戶//。png)。

有人知道我在做什麼錯嗎?

+1

請將您的代碼發佈在此處。這樣你的問題在鏈接死後仍然有效。 – PeeHaa

+0

其實,我看不到這個。請在此**發佈您的代碼**並對其進行格式化,以便可以輕鬆閱讀 – 2013-07-03 10:08:45

+0

也請正確縮進您的代碼。 – PeeHaa

回答

2

documentation

給出一個包含路徑的文件或目錄的字符串,該函數將返回尾隨名稱組件。

「後的名稱組件」,你的情況是file1.txt,當你有,你加.txt導致成file1.txt.txt,它無法找到。

替換此

include "blog/posts/{$file1}.txt"; 

include "blog/posts/{$file1}"; 
+0

哦,哇。我應該意識到這一點。我使用了自動菜單craetor中的一些代碼,它沒有使用文件擴展名,所以我添加了它們的本質。我想這就是我整晚編碼的原因。 –

0

改變這

foreach (array_reverse(glob("blog/posts/*")) as $path1) 

foreach (glob("blog/posts/*") as $path1) 
+0

我很確定OP想扭轉訂單 – PeeHaa

1

你聲稱$file1不包含文件名與擴展,然後用

include "blog/posts/{$file1}.txt"; 

要追加的文件名當不需要的時候擴展無法找到該文件。請嘗試:

include "blog/posts/{$file1}";