[英]Using opendir with PHP Pages Component for Joomla 1.5
我有一個在Joomla上運行的網站! 1.5(由於模板問題無法升級)。
在此站點上,我有一個頁面,成員可以在其中找到一些重要文件,這些文件是我們俱樂部會員所需的。
我將這些文件排列在一些文件夾中,所有文件都使用相同的命名約定(* yyyy-mm-dd_documentName *)。
為了簡化操作,我想使用某種格式自動列出文件。
由於Joomla不允許在文章中輸入PHP,因此我安裝了PHP Pages Component 。
該組件允許您創建頁面並通過例如菜單欄鏈接到它們。
要列出這些文件,我想使用PHP的opendir函數,打開該文件夾並在該文件夾上運行以讀取文件名並設置其格式。
這是我為此使用的代碼:
if($handle = opendir('/media/files/')) {
while(false !== ($entry = readdir($handle))) {
echo $entry;
}
closedir($handle);
}
由於組件從其自己的目錄開始每個相對路徑,因此由於某種原因而忽略了第一個/,這產生了一個錯誤。
因此,我嘗試通過輸入完整的URL(從http://開始)來解決此問題。
仍然沒有解決,現在的新錯誤是(bestanden.php是PHP頁面)
警告: opendir( http://www.example.com/media/files )[function.opendir]:無法打開dir:在/home/user/public_html/components/com_php/files/bestanden.php中未實現38
有人建議我使用ftp-handlet(也受支持)。
相應地,語法為ftp:// user:password@ftp.example.com
我為此做了一個單獨的說明,立即結束於正確的目錄,以防止跨目錄攻擊。 如果我在瀏覽器中手動嘗試此操作(確實仍然要求提供憑據),則此方法確實可行。
但這也不起作用。
我的想法不多了。
誰能幫我?
解
感謝@Lodder
<ul>
<?php
$path = JPATH_SITE . '/media/files/nieuwsbrieven/';
$files = JFolder::files($path);
foreach ($files as $file) {
// Strip extension and save name to display it
$name = substr($file, 0, strrpos($file, '.'));
// Exclude the index I placed inside the dir to prevent direct surfing to the folder
if($name != "index") {
echo "<li><a href='/media/files/nieuwsbrieven/" . $file . "' title='Nieuwsbrief " . $name . "' target='_blank'>Nieuwsbrief " . $name . "</a></li>";
}
}
?>
</ul>
結果
試用時,您應該真正查看Joomla文檔。 Joomla擁有自己的類,用於讀取文件夾中的文件。 您可以使用以下命令顯示文件夾中的所有文件:
$path = JPATH_SITE . '/media/files';
$files = JFolder::files($path);
foreach ($files as $file) {
echo $file;
}
要使用此代碼,請忘記允許您使用自定義PHP的組件之類的東西,我強烈建議您使用名為Sourcerer的插件,該插件允許在文章中使用PHP或JS。
有關Joomla文件系統類的更多信息,請閱讀以下內容:
http://docs.joomla.org/How_to_use_the_filesystem_package#Read_files_from_folder
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.