web-dev-qa-db-ja.com

PHPでファイルを検索する方法

まず第一です。私はPHP開発者ではありません。これは私の仕事に必要なものなので、それを引き受けて、学習しながら学んでいます。

現在、作成したアイテムのマニュアルへのリンクを保持するExcelシートがあり、これらは手動で更新する必要があります。実行には数時間かかる場合があります。だから私は時間を短縮するためにこれを行う方法を見つけようとしています。

Excelファイルを読み取ってjavascriptを使用して必要な情報を取得し、それをajax呼び出しでphpに送信します。

必要なデータを取得し、サーバー上でどのように動作するかを確認しました。

私はそれを機能させるために一日中グーグルをしていましたが、私はただ空っぽになり続けています。

これがphpファイルの私のコードです。

    <?php
$search = isset($_POST['urlData']) ? rawurldecode($_POST['urlData']) : "Nope Still not set";
$path = $_SERVER['DOCUMENT_ROOT'];


$it = new RecursiveDirectoryIterator( $path );
foreach (new RecursiveIteratorIterator($it) as $file){
    $pathfile = str_replace($path,'',$file);
    if (strpos($pathfile, $search) !== false) {
        echo " pathFile var => ". $pathfile . "| Search var => " . $search;
        $encodedUrl = rawurlencode($pathfile .$search);
        echo 'link = http://manuals.myCompany.com/'. $doneUrl .'<br>';

    }else{

        echo "File does not exist => ";
        echo $path. "<= Path " . $search."<= Search ". $pathfile . "<= Pathfile";

    }
    break;
}

したがって、phpファイルにマニュアルの名前を付けて、それがディレクトリのどこかにあるかどうかを確認する必要があります。

このファイルは、manualsフォルダー(manuals/searchManuals.php)に保存されているsearchManuals.phpです。探しているファイルは、同じディレクトリ(manuals/english/jdv0/pdf/manual.pdf)のフォルダーにあります。

4
bigjim

これを試して:

$file_to_search = "abc.pdf";

search_file('.',$file_to_search);




function search_file($dir,$file_to_search){

$files = scandir($dir);

foreach($files as $key => $value){

    $path = realpath($dir.DIRECTORY_SEPARATOR.$value);

    if(!is_dir($path)) {

        if($file_to_search == $value){
            echo "file found<br>";
            echo $path;
            break;
        }

    } else if($value != "." && $value != "..") {

        search_file($path, $file_to_search);

    }  
 } 
}
2
VK321

Glob()関数はどうですか? PHPドキュメント

0
Wojtek B