0

ファイルをディレクトリに検索するためのこのスクリプトがあります。たとえば、「my file.doc」、「sales order 1234.pdf」などの正確な用語で検索を実行するとうまくいきます。

ファイル名に単語を検索するように変更するのを手伝ってくれる人はいますか? 例: "file" ou "Sales"

TKSクリス。

<?php
    if($_POST['search']) {
    $word = $_POST['file'];
    $dir = './';
    $list  = new RecursiveDirectoryIterator($dir);
    $recursive = new RecursiveIteratorIterator($list);

    $num = 0; //  
    foreach($recursive as $obj){

    //echo $obj->getFilename().'<br />'; 
    if($obj->getFilename()=="$word"){
      echo $obj->getPathname().'<br/>';
      $num++;
       }
      } 
    echo "found(s) $num file(s)."; 
    }
   ?>


<form action="" method="POST">
search files. <input type="text" name="file" value="">
<input type="submit" name="search">
</form>
4

3 に答える 3

0
<?php
    if($_POST['search']) {
    $word = $_POST['file'];
    $dir = './';
    $list  = new RecursiveDirectoryIterator($dir);
    $recursive = new RecursiveIteratorIterator($list);

    $num = 0; //  
    foreach($recursive as $obj){

    //echo $obj->getFilename().'<br />'; 
    if( strpos( $obj->getFilename(), "$word" ) === true ){
      echo $obj->getPathname().'<br/>';
      $num++;
       }
      } 
    echo "found(s) $num file(s)."; 
    }
   ?>


<form action="" method="POST">
search files. <input type="text" name="file" value="">
<input type="submit" name="search">
</form>
于 2012-07-06T12:02:54.647 に答える
0

ファイル名に対して strpos関数またはstrstr関数を使用できます。

関数が false 以外の何かを返すかどうかをテストして、ファイル名にチェーンが含まれていることを確認します。

于 2012-07-06T12:05:00.360 に答える
0

PHP のsubstr_countを使用して、別の文字列の出現回数をカウントできますが、1 つ以上の文字列が必要なため、次のように確認できます。

if( substr_count( $obj->getFilename(), $word ) ){
    echo $obj->getPathname().'<br/>';
    $num++;
}

編集:大文字と小文字を区別しない比較:

if( substr_count( strtolower($obj->getFilename()), strtolower($word) ) {
     // ...
}
于 2012-07-06T12:05:42.597 に答える