2014-02-23 52 views
0

假設在我的目錄「MY_DIR /」包含以下文件:PHP如果目錄中的所有文件都爲空,如何顯示「Text Empty」?

file1.php 
file2.php 
file3.php 
... 

而且假定每個文件不爲空..

<div id="file_data"> 
<?php $my_dir = glob("my_dir/*.php"); ?> 

<!-- This will display all files --> 
<?php foreach($my_dir as $file) { ?> 
<?php include $file; ?><br> 
<?php } ?> 
</div> 

如果全部或部分文件不爲空,將顯示一些信息在我的頁面,但如何顯示自定義文本,如果所有文件都是空的?我不想在我的頁面上顯示任何數據/信息。

感謝您的幫助,我是程序員非常初級=)

+0

如果要顯示文件內容,請不要使用include,它會執行代碼,只需使用echo file_get_contents($ file); – Sirac

+0

@Sirac我創建的文件來構建一個HTML元素,所有文件的設計,所以它更簡單,如果使用包括..,我保護該文件通過.htacess直接訪問,所以任何人都無法打開它和file_get_contents方法也不會正常工作.. –

+0

在我看來,file_get_contents應該工作,因爲它不使用http-stream,並且.htaccess文件在這裏沒有影響。您可以在包含文件的末尾設置返回$ somevalue。 include將返回包含文件中返回的值,所以如果文件爲空,則不返回任何內容,並且可以通過檢查包含語句的返回值來檢查程序 – Sirac

回答

0

要檢查的內容的文件,你可以添加

return "finished"; //or some other return value 

到文件的末尾,使用此代碼:

<div id="file_data"> 
<?php $my_dir = glob("my_dir/*.php"); 

$content = false; //no content echoed until now 
foreach($my_dir as $file) { 
    $returnValue = include($file); 
    if ($returnValue == "finished"){ //or some other return-value to check 
     //some content was successfull echoed 
     $content = true; 
     echo "<br>\n"; 
    } 
} 
if (!$content){ 
    echo "No content here"; //or just echo something more useful 
} ?> 

順便說一句,從幾個文件加載你的內容,並只加載該目錄中的所有文件是沒有好的編程習慣。攻擊者可以將他的文件插入你的目錄並插入自己的代碼。此外,它將非php文件放在您的目錄中(意識到這一點或者只是意外),include會導致錯誤,並且不會創建您的頁面。我會試着想想另一種方式來創建您的網站在未來。

+0

感謝您的幫助,但我不明白你的代碼如何工作,它仍然顯示文件的內容和自定義文本「無內容」,我可以通過創建一個文件來解決它,然後檢查該文件(是否爲空)..也許有更好的辦法做到這一點..我很抱歉,如果我的英語不好:D –

+0

你不必爲壞英語道歉,我的英語技能也不是那麼好。不幸的是我不能完全理解,我應該解釋哪部分代碼。從你的評論我明白,代碼仍然迴應「沒有內容在這裏」,即使文件包括在內。如果是這種情況,則將「return somevaluehere」添加到您的代碼中,並將上面代碼中的第一個if語句更改爲「if($ returnValue == somevaluehere){」。它可能也適用於「if($ returnValue){」。它重要的是在文件末尾或程序不會注意的地方添加return語句。我希望我能幫助你。 – Sirac

相關問題