2013-06-28 83 views
0

我有一個新聞概述頁面,我想單獨包括一個php文件的文件夾。 而不是手動將每個人包括到我的概述頁面中,我想我會使用PHP來掃描php文件的文件夾,並將其作爲include語句打印出來。glob - 掃描文件夾爲php新聞文章文件

我有以下代碼:

<?php $articles = glob("/assets/news/form/*.php"); ?> 
<?php 
if(count($articles)) { 
    natcasesort($articles); 
    foreach($articles as $article) { 
    ?> 
     <?php include("$_SERVER[DOCUMENT_ROOT]/assets/news/overview/$article"); ?> 

<?php 
    }} else { 
     echo "Sorry, no articles to display!"; 
    } 
?> 

我得到這個沒有語法,但我沒有收到任何輸出。只是文章應該在的空白處。

我想輸出是這樣的:

<?php include("$_SERVER[DOCUMENT_ROOT]/assets/news/overview/1.php"); ?> 
<?php include("$_SERVER[DOCUMENT_ROOT]/assets/news/overview/2.php"); ?> 
<?php include("$_SERVER[DOCUMENT_ROOT]/assets/news/overview/3.php"); ?> 
<?php include("$_SERVER[DOCUMENT_ROOT]/assets/news/overview/4.php"); ?> 
<?php include("$_SERVER[DOCUMENT_ROOT]/assets/news/overview/5.php"); ?> 
<?php include("$_SERVER[DOCUMENT_ROOT]/assets/news/overview/6.php"); ?> 

最後我想要寫一個PHP函數,它掃描ROOT/assets/news/form/ 所有PHP文件的文件夾,幷包含所有具有相同的文件名稱來自文件夾ROOT/assets/news/overview

我的新聞概述頁面目前在/news/index.php

誰能幫我這個?

+0

「我想我會用PHP來掃描PHP文件的文件夾,並打印出來作爲一個包括陳述」 - 這是罰款,直到你在你的目錄得到一個不必要的PHP文件,那麼你會自動包括它。我會堅持使用手冊內容,或者至少將它們限制在你知道的很好的內容中。 – Revent

+0

'echo file_get_contents($ file);' – Rob

+0

你有沒有考慮過使用數據庫,如果這些'新聞'文件只是文本\ html – 2013-06-28 01:09:29

回答

1

這裏,給這個一掄:(測試)

測試使用absolute路徑我的服務器上。

<?php 

// path to .php files must be absolute path 
// example: /server/user/f/fred/forms/*.php 
// May have to modify your path if it's not absolute 

// You may have to use this, if doesn't work 
// $articles = glob("$_SERVER[DOCUMENT_ROOT]/assets/news/forms/*.php"); 
$articles = glob("/assets/news/forms/*.php"); 

if(count($articles)) { 
    natcasesort($articles); 
    // rsort($articles); // use rsort for descending order 

foreach($articles as $article) { 
    $article = basename($article); 

// You may have to use this, if doesn't work 
// include("$_SERVER[DOCUMENT_ROOT]/assets/news/forms/$article"); 
include("$_SERVER[DOCUMENT_ROOT]/assets/news/forms/$article"); 

     } 

    } 

else { 

echo "Sorry, no articles."; 

} 

?> 
+0

有了這個,我目前得到以下錯誤:警告:natcasesort()預計參數1是陣列,在給定的httpROOT上線113 警告/消息/ index.php的布爾:提供的foreach無效參數()在httpROOT /新聞/index.php 115行 –

+0

@LukeCottingham這很奇怪。它爲我工作。讓我仔細檢查一下,但我確定這是我使用的確切語法。給我一點時間。 –

+0

@LukeCottingham嗯,這是最BIZARRE的事情。在測試我發佈的內容後,它完美運行。現在,突然間,它向我展示了多個副本。我真的不知道突然發生了什麼事。我會嘗試重做,並讓你知道。 –

1

變化:

foreach($articles as $article) { 

到:

foreach($articles as $article) { 
    $article = basename($article); 

剝掉目錄前綴中的​​3210結果。