與 $result
OK 和$inclusion
是一個實際的文件名包含在一個循環的變量名
我想做到這一點:
while ($row = mysqli_fetch_array($result)){
$inclusion = $row['filename'] ;
// check if file exists here
include $inclusion ;
}
但它沒有做環......和而是在第一次收錄之後停止......爲什麼? 謝謝!
與 $result
OK 和$inclusion
是一個實際的文件名包含在一個循環的變量名
我想做到這一點:
while ($row = mysqli_fetch_array($result)){
$inclusion = $row['filename'] ;
// check if file exists here
include $inclusion ;
}
但它沒有做環......和而是在第一次收錄之後停止......爲什麼? 謝謝!
這應該爲你工作:
在這裏,我首先將文件添加到陣列$files
。在此之後,我array_filter()
所有文件不存在,並且只採用array_unique()
的唯一文件。
最後我只是通過與array_map()
然後將所有文件循環,因爲你沒有路徑形成服務器的根目錄,但服務器的磁盤,我只取basename()
(指文件名),並用它串聯__DIR__
包括它。
<?php
while ($row = mysqli_fetch_array($result)){
$files[] = $row['filename'];
}
$files = array_unique(array_filter($files, function($v){
return file_exists($v);
}));
array_map(function($v){
require_once(__DIR__ . "/" . basename($v));
}, $files);
?>
是的,我確實工作!再次感謝你 !如果我可以的話,我會投票...這也太令人沮喪了:) – patHgaronne 2015-04-03 17:25:00
@patHgaronne不客氣!祝你有美好的一天:D – Rizier123 2015-04-03 17:25:24
因爲該文件不存在,它會打印一個錯誤? 你應該檢查 if(file_exists($ inclusion))include $ inclusion; – 2015-04-03 16:28:16
你有什麼文件?你也有任何錯誤? – Rizier123 2015-04-03 16:28:19
從你顯示的代碼中,我會說它不會在*第一次包含之後開始,而是在包含的文件中。這也不是文件存在,因爲這隻會發出警告,但不會致命。事實上,它會是隻有一行。您應該啓用錯誤報告到最高級別,並顯示錯誤以及日誌記錄以更早地發現錯誤:[如何在PHP中獲取有用的錯誤消息?](http://stackoverflow.com/q/845021/367456) – hakre 2015-04-03 16:32:25