2012-04-25 7 views
0

と私はファイルがにアップロードされたディレクトリを持っている、と私は、ファイルが存在する場合は、ダウンロードリンクを表示することができるようにしたい、指定されたディレクトリに、ワイルドカード化仕様に一致する場合。しかし、ファイルはアップロードされた人の識別子なので、特定のパターンに一致しなければなりません。チェックファイルがPHP

パターンは/ ClientFilesで始まる/それがユーザーIDで始まるすべてのファイルを検索する必要があります。たとえば、次のようにします。/ClientFiles/123-UploadData.xls

したがって、ClientFilesディレクトリを調べ、後で何があっても「123-」で始まるすべてのファイルを見つける必要があります。

乾杯

+0

各ユーザーにディレクトリを持たせるのは理にかなっていませんか? –

+0

私はあなたがワイルドカードを必要とするので、あなたは、[のDirectoryIterator](http://www.php.net/manual/en/class.directoryiterator.php)が必要だと思います。そのページにたくさんの例があります。 (そして、はい、@twallが正しい - あなたが最初に良い質問をしたことを示す必要があります - それは学ぶための最良の方法です)。 – halfer

+0

@halfer:シンプルなマッチ、 'グロブ( '123 - * XLS')のために'はるかに簡単である –

答えて

3

$files = array();  
foreach(glob($dirname . DIRECTORY_SEPARATOR . $clientId . '-*' as $file) { 
    if(is_readable($file) { 
     $files[] = $file; 
    } 
} 
2

は単に

+0

is_readable()を使う方が良い。そうしないと、存在しても配信できないファイルを取得できます。 –

0

PHPは関数file_existsを持つfile_exists()関数を使用します。それを使ってリンクを表示するかどうかについていくつかの論理を作ります。あなたがファイルを読むことができるかどうかを確認するためにis_readableを使用し、その後、globを使用することができ、特定のパターンでファイルを検索するには