2011-06-17 47 views
1

我是一個初學者到PHP所以請原諒任何無知,使用exec()命令創建本地文件的可點擊鏈接?

我使用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"; 
} 
?> 

的問題是,它給人的文件列表與filenames-

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 
+2

爲什麼使用EXEC ?改用php的函數。 – 2011-06-17 09:16:36

回答

1

沒有必要使用exec();在目錄中列出的文件,PHP有許多建立功能與文件系統處理:

readdir()手冊頁:

<?php 
if ($dirHandle = opendir('.')) { 
    while (false !== ($nodeHandle = readdir($dirHandle))) { 
     if ($nodeHandle == '.' || $nodeHandle == '..') { 
      continue; 
     } 
     echo "$nodeHandle \n"; 
    } 
    closedir($dirHandle); 
} 
?> 
+0

thx ...這正是我想要的...... – digster 2011-06-17 14:25:59

2

你多遠改用PHP的目錄處理函數代替。 scandir()函數應該是你特別感興趣的。

不要忘記,SCANDIR上市將包括。並且..除非您打算將它們用於導航,否則您需要將它們從結果集中移除。

+0

好吧,那麼我如何刪除'。'和'..'的結果? – digster 2011-06-17 09:15:53

+0

如何指定scandir當前目錄而不提供顯式路徑? – digster 2011-06-17 09:17:19

+0

您可以刪除'。'和'..'路徑,方法是在列表構建循環中忽略它們,或者使用PHP的數組處理功能將其過濾掉。你可以使用。路徑作爲scandir路徑的參數。 scandir('。'); – GordonM 2011-06-17 09:41:07

相關問題