2010-12-09 56 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());