【发布时间】:2023-03-15 14:16:02
【问题描述】:
首先,我正在使用 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 变量,在这种情况下为您提供您的 webroot hHttp://127.0.0.1:80),但我不能将它与 DirectortIterator 一起使用,因为它不适用于 http 地址,它需要文档路径.
有人对我如何做到这一点有任何想法吗?
【问题讨论】:
标签: php iterator relative-path