2010-12-09 55 views
3

首先,我使用Server2Go創建一個基於CD-ROM的網站。PHP:DirectoryIterator - 使用http地址,而不是絕對路徑?

我試圖用DirectoryIterator創建一個導航欄,直接從我的.php文件的文件夾/文件結構中取得。這裏是我的代碼:

<?php 
$root = $_ENV["S2G_SERVER_DOCROOT"]."/content/"; 
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($root)); 
foreach($files as $file){ 
    echo '<li><a href=' . $file->getPathname() . '>' . $file->getPathname() . PHP_EOL . '</a></li>'; 
} 
?> 

這裏的問題是,它輸出每個文件夾/文件的完整絕對路徑(即C:/等等,等等),這將導致問題的.php文件唐」因爲他們只能從基於http的URL打開。我需要做的是將路徑輸出爲http://路徑,或相對於Web根目錄。還有另一個名爲S2G_BASE_URL的Server2Go ENV varialbe,在這種情況下,它給了你的webroot hHttp://127.0.0.1:80),但是我不能在DirectortIterator中使用它,因爲它不支持http地址,它需要文檔路徑。

有沒有人有任何想法我可以做到這一點?

回答

2

在回顯getPathname方法的輸出之前,您必須替換字符串中的$ _SERVER [「DOCUMENT_ROOT」]。

$path=str_replace($_SERVER["DOCUMENT_ROOT"],'',$file->getPathname());