【发布时间】:2010-11-05 20:13:45
【问题描述】:
我正在尝试编写一个 php 函数来保存然后在文章上显示 cmets。
在我的 save.php 中,我正在制定文件:
$file = "article1/comments/file".time().".txt";
然后使用 fwrite() 写入目录。
在我的索引中我有:
if ($handle = opendir('article1/cmets')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $files = 数组($file); 排序($文件); foreach($files 作为 $cmets){ echo "";
readfile('article1/cmets/'.$cmets);
回声“</div>”;
}
}
}
关闭($句柄);
}
在大多数情况下,这会以正确的顺序显示 cmets,但由于某种原因,某些文件显示不正确。此外,如果我将 sort() 更改为 rsort(),它们的显示方式没有变化。
我认为这是因为 readfile() 没有遵循排序数组的顺序。所以我想知道一个,为什么 readfile 不按从最新到最旧的顺序显示文件,第二个,我怎样才能让它正确显示它们?
谢谢。
编辑:我将 cmets 的目录从 live 站点复制到本地 xampp 安装,并且 cmets 在本地按顺序显示,但是在我的站点上使用相同的代码导致 cmets 不按顺序。
【问题讨论】:
-
你在排序什么?
$files数组中只会有一个元素,所以排序是无用的......如果你想要排序,你需要将$file添加到$files数组 ($files[] = $file),然后移动foreach循环和sort在while循环之外... -
@ircmaxell:这是有道理的。我对php很陌生,所以我不太确定如何做所有这些。我正在尝试创建一个包含目录中所有文件的数组,然后使用 readfile 根据文件名按顺序显示每个文件的内容。
-
您确定不能使用任何类型的数据库吗?
-
@Col。弹片:我可以使用 SQL 数据库。那会是更好的方法吗?这是我的第一个 php 项目,所以我基本上是在进行过程中弄清楚
-
它会好几千倍。在数据库中存储文章和 cmets 将是显而易见且广泛使用的解决方案。但是,您可以将文件用于学习目的。拥有基本的文件系统技能总是好的
标签: php