【发布时间】:2016-06-03 05:06:58
【问题描述】:
我真的是 PHP 新手,我搜索了 google 以找到一个正确的脚本,该脚本循环遍历文件夹中的所有子文件夹并获取该子文件夹中的所有文件路径
<?php
$di = new RecursiveDirectoryIterator('posts');
foreach (new RecursiveIteratorIterator($di) as $filename => $file) {
echo $filename. '<br/>';
}
?>
所以我有文件夹“posts”,其中有子文件夹“post001”,其中有两个文件
controls.png
text.txt
上面的代码也反映了这一点
posts\.
posts\..
posts\post001\.
posts\post001\..
posts\post001\controls.png
posts\post001\text.txt
但我只想像这样回显这些子文件夹中的文件路径
posts\post001\controls.png
posts\post001\text.txt
这一切的重点是我想为每个子文件夹动态创建 div,在这个 div 里面我把 img 和 src 和一些 h3 和 p html 标签的文本等于 .txt 文件所以这是正确的做法那以及如何重新制作我的 php 脚本,以便我只获得文件路径
所以我可以看到答案,它们都是正确的,但现在我的意思是我需要这样的东西
foreach( glob( 'posts/*/*' ) as $filePath ){
//create div with javascript
foreach( glob( 'posts/$filePath/*' ) as $file ){
//append img and h3 and p html tags to the div via javascript
}
//append the created div somewhere in the html again via javascript
}
那么在 php 中执行这两个 foreach 循环的正确语法是什么,我现在真的掌握了基础知识
【问题讨论】:
-
这可能是一个糟糕的建议,但您可以在 echo 之前添加一个
if(strpos($filename, '\.') === false) -
你所说的糟糕建议是指你的建议或我对完成任务的想法
-
我的意思是可能有更好的方法来做你想做的事,而不会浪费 CPU 检查每个结果。我以前从未见过您在那里使用的功能,这只是解决您问题的一种黑客方式。
-
我不知道它们是否是某些 Windows 限制,但在 Unix 上,这个独特的命令可以按您的预期工作:
foreach( glob( 'posts/*/*' ) as $filePath ) -
不错的 fusion3k 将其作为答案,所以我可以接受答案