ホームページ  >  記事  >  バックエンド開発  >  PHP ディレクトリ再帰走査プログラム_PHP チュートリアル

PHP ディレクトリ再帰走査プログラム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-20 11:10:10732ブラウズ

友人が作成したディレクトリ検索プログラムは、ユーザーが入力したディレクトリ名に基づいて指定されたディレクトリまたはファイルを見つけることができ、必要な友人がそれを参照できるようにします。例

コードは次のとおりです コードをコピーします Private $ Result; function __construct($key){ $this->key = $key;
& & & & & & & & { Private $reviewLen = 50; Private $ file_type = Array ('HTML', ,, 'php','htm','txt');
}


function find($folder){
$this- > result = array();

if(is_array($folder)){
foreach($folder as $f){

$this->_find_in_folder($f);

}
}else{
$this -> ;_find_in_folder($folder, true);

}


return $this->result;
}

function _find_in_folder($folder,$bSub=false){
foreach(glob($folder.DIRECTORY_SEPARATOR.' *' ) as $f){
if (is_file($f)){
$extend =explode("." , $f);
$type = strto lower(end($extend));
if(in_array( $type ,$this->file_type)){

$fd = file_get_contents($f);

$pos = strpos($fd,$this->key);
if($pos!==false){
$ end = $pre = '...';
$pos -= Floor($this->previewLen/2);
if($pos $pre = '';
$pos = 0; }

$findata = substr($fd,$pos,$this->previewLen);
$findata = str_replace($this->key,'key.'',$findata);
$this->result[] = array('path'=>$f,'preview'=>$ pre. $findata.$end);
}
}
続行;
}

if($bSub && is_dir($f)){
$this->_find_in_folder($f,true);

}

}
}

}

$cur_path = dirname(__FILE__);
if(isset($_GET['a'])){

$key = $_POST['key'];

if(!$key) die (' キーワードを空にすることはできません');

$cf = new Finder($key);

$in_folder = array();
$limit_folder = $_POST['limit_folder'];
if($limit_folder==1 ) {

if(!isset($_POST['folder']) || !$_POST['folder']) die('制限されたディレクトリを空にすることはできません');

$in_folder = $_POST['folder'];
$ret = $cf->find($in_folder);
}else{
$ret = $cf->find($cur_path);

}

echo "[$key] の結果を検索:
";

if(!$ret) die('none');
foreach($ret as $p=>$f){
echo "$p. t$f[path] => f [プレビュー]
n";
}
exit();
}

$folder = array();
function readFolder($path){

global $folder;

$folder[] = $ path;
foreach(glob($path.DIRECTORY_SEPARATOR.'*') as $f){
if (is_dir($f)) {
readFolder($f);
}
}
}

readFolder($cur_path);
$folder_op = array();
foreach($folder as $path){
$folder_op[] = "" ;
}
$folder_op = implode($folder_op);
?>


検索キーワード:

検索ディレクトリ:はいいいえ

=


www.bkjia.com本当http://www.bkjia.com/PHPjc/444740.html技術記事友人が作成したディレクトリ検索プログラムは、ユーザーが入力したディレクトリ名に基づいて指定されたディレクトリまたはファイルを見つけることができます。また、必要な友人はこれを参照できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。