在DIR

2011-05-11 46 views
3

查找文件我有很多文件中的目錄:在DIR

pic_1_79879879879879879.jpg 
pic_1_89798798789798789.jpg 
pic_1_45646545646545646.jpg 
pic_2_12345678213145646.jpg 
pic_3_78974565646465645.jpg 
etc... 

我只需要列出pic_1_文件。任何想法我可以做什麼? 在此先感謝。

回答

4

的運行結束DIR功能將幫助您

$dir ="your path here"; 

$filetoread ="pic_1_"; 
    if (is_dir($dir)) { 
     if ($dh = opendir($dir)) { 
      while (($file = readdir($dh)) !== false) { 
       if (strpos($file,$filetoread) !== false) 
       echo "filename: $file : filetype: " . filetype($dir . $file) . "\n"; 
      } 
      closedir($dh); 
     } 
    } 

好運看到php.net執行opendir

+0

這就像一個魅力,謝謝! – greenbandit 2011-05-11 05:31:07

+0

我很高興我能幫助 – Ibu 2011-05-11 05:37:32

1

使用scandir可以列出目錄中的所有文件,然後使用preg_grep來獲取與您正在查找的模式相匹配的文件列表。

9

使用glob()功能

foreach (glob("directory/pic_1_*") as $filename) { 
    echo "$filename"; 
} 

只要改變directory在水珠調用正確的路徑。

這所有這一切在一杆與抓取的文件列表,然後過濾它們。

+0

我學到新的東西!非常感謝 – greenbandit 2011-05-11 05:30:27

4

這是glob()是什麼:

glob - 尋找匹配的文件路徑圖案

例子:

foreach (glob("pic_1*.jpg") as $file) 
{ 
    echo $file; 
} 
每天
+0

看起來很熟悉;) – RDL 2011-05-11 05:18:53

+0

@RDL:是的是懶洋洋地打字並通過php.net意見飛掠而你發佈 - 不復制,謝謝你爲他人錯過提的水珠,我也給你投票 - 希望我可以給你三個 - 然而,這水珠只會匹配.jpgs – 2011-05-11 05:20:04

+0

我想這樣。這一直髮生在我身上。我只是揍你一拳。我也給了你一個投票,B/C你是正確的。同意,我很驚訝有多少人不知道這件事。 – RDL 2011-05-11 05:22:32