首先,我正在使用Server2Go创建一个基于CD-ROM的站点。
我正在尝试使用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地址一起使用,它需要文档路径
有没有人对如何做到这一点有任何想法?
答案 0 :(得分:2)
在回显getPathname方法的输出之前,你必须在字符串中替换$ _SERVER [“DOCUMENT_ROOT”]。
$path=str_replace($_SERVER["DOCUMENT_ROOT"],'',$file->getPathname());