You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在无序列表中输出docs目录下所有文件链接?PHP代码报错求助

解决PHP遍历docs目录文件时的类型错误问题

错误原因

scandir('docs/') 返回的是一个字符串数组,数组里的每个$file元素都是纯文件名字符串,不是关联数组。你用$file[name]这种数组偏移的方式访问字符串,就会触发Cannot access offset of type string on string的致命错误。

修正后的代码

还要注意排除scandir默认返回的.(当前目录)和..(上级目录)两个特殊项,同时生成符合需求的可点击文件链接:

<?php
echo "<ul>";
$files = scandir('docs/');
foreach($files as $file) {
    // 跳过当前目录和上级目录
    if($file === '.' || $file === '..') {
        continue;
    }
    // 生成指向文件的可点击链接
    echo "<li><a href='docs/{$file}'>{$file}</a></li>";
}
echo "</ul>";
?>

关键修正点

  • 直接使用$file变量输出文件名,替代错误的$file[name]写法
  • 增加判断逻辑跳过.和..,避免无效目录项被输出
  • 按照需求生成文件链接,让列表项可以直接点击访问对应文件

内容的提问来源于stack exchange,提问作者jenicekpernicek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:45:33