我是PHP的初学者所以请原谅任何无知......
我正在使用exec()命令,以获取媒体目录中的文件列表..
<?php // exec.php
$cmd = "dir"; // Windows
exec(escapeshellcmd($cmd), $output, $status);
if ($status) echo "Exec command failed";
else
{
echo "<pre>";
foreach($output as $line) echo "<a href='$line'>$line</a> \n";
}
?>
问题是它提供了文件列表以及文件名的各种时间戳 -
Volume in drive F is Movies
Volume Serial Number is 172B-1DE0
06/17/2011 01:11 AM 6,318 bck.gif
因此,在这里它创建了可输出的每一行的可点击链接,不用说不起作用。
我想要的是它只会为文件名创建可点击的链接,而不是额外的元信息,然后用户可以点击这些信息来启动他的原生程序 -
video1.mpg
video2.mpg
bck.gif
答案 0 :(得分:2)
使用PHP的目录操作功能要好得多。 scandir()函数应该是您特别感兴趣的。
不要忘记scandir列表将包括。并且..你需要从结果集中删除它们,除非你打算用它们进行导航。
答案 1 :(得分:1)
没有必要使用exec();
列出目录中的文件,PHP有许多用于处理文件系统的内置函数:
从readdir()
手册页:
<?php
if ($dirHandle = opendir('.')) {
while (false !== ($nodeHandle = readdir($dirHandle ))) {
if ($nodeHandle == '.' || $nodeHandle == '..') {
continue;
}
echo "$nodeHandle \n";
}
closedir($dirHandle);
}
?>