ホームページ  >  記事  >  バックエンド開発  >  PHP ファイル トラバーサルの実装コード_PHP チュートリアル

PHP ファイル トラバーサルの実装コード_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:29:40870ブラウズ

コードをコピーします コードは次のとおりです:

function Files($path)
{
foreach(scandir($path) as $line)
{
if($line=='.'| |$line= ='..') 続行;
if(is_dir($path.'/'.$line)) Files($path.'/'.$line);
else echo '
  • ' .$path. '/'.$line.'
  • ';
    }
    }

    指定されたフォルダー C:\Windows\AppPatch を追加します
    1.
    $fileArr = array(
    'files' => array(), //ファイルは配列に配置されます。
    'dirs' => array(), // フォルダーに配列を配置します
    )
    2. サブフォルダーがある場合は、サブフォルダーを走査し、フォルダーとファイルを取得し、それらを配列に配置するなど、欠落することなく実行します


    コードをコピーします コードは次のようになります:
    $dir = 'F:\game';
    function read_dir_all($dir) {
    $ret = array('dirs'=>array(), 'files'=> array());
    if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
    if($file != '.' && $file !== '..') {
    $cur_path = $dir . $file;
    $ret['dirs'][$cur_path] = read_dir_all($cur_path);
    } else {
    $ret['files'][] = $cur_path;
    }
    }
    closedir($handle)
    }
    $p = read_dir_all($dir);
    echo '
    '; 


    php はフォルダー内のすべてのディレクトリとファイルをスキャンしますインタビュー 私たちはよくこの問題に遭遇しました: php はフォルダー内のすべてのファイルとサブフォルダーを走査します。
    この問題には多くの解決策があります。しかし、一般的な考え方は同じです。再帰を使用します。



    コードをコピーします

    コードは次のとおりです:

    $path = './filepath';
    function getfiles($path)
    {
    if(!is_dir($path)) return; = opendir( $path); while( false !== ($file = readdir($handle))) { if($file != '.' && $file!='..') {
    $path2= $path.'/'.$file;
    if(is_dir($path2))
    echo ' ';
    getfiles($path2)
    }else
    echo ' ' ;
    echo $file;
    }
    }
    print_r(getfiles($path));
    関数 getdir($path)
    if(!is_dir($path) )) リターン ;
    $handle = dir($path);
    while($file=$handle->read())
    {
    if($file!='.' && $file!='..' )
    {
    $path2 = $path.'/'.$file;
    if(is_dir($path2))
    {
    getdir($path2); echo $file ';
    }
    }
    getdir($path);
    function get_dir_scandir($path){
    $tree() scandir($ path) as $single){
    if($single!='.' && $single!='..')
    {
    $path2 = $path.'/'.$single;
    if(is_dir; ($path2 ))
    {
    echo $single."rn";
    get_dir_scandir($path2);
    }else
    {
    echo $single."rn"
    }
    }
    } );
    echo '

    ';
    function get_dir_glob(){
    $tree = array();
    foreach('./curl/*') as $single){
    echo $single." rn";
    }
    }
    get_dir_glob();
    echo '

    ';
    function myscandir($path)
    {
    if(!is_dir($path)) return;
    foreach(scandir($path) ) $ ファイルとして)
    {
    if($file!='.' && $file!='..')
    {
    $path2= $path.'/'.$file
    if(is_dir($path2) ))
    {
    echo $file;
    myscandir($path2);
    {
    echo $file.';
    }
    }
    }
    echo '関数 myglob($path)
    {
    $path_pattern = $path.'/*';
    foreach(glob($path_pattern) as $file)
    {
    if(is_dir($file))
    echo $file ;
    myscandir($file);
    {
    echo $file.';
    }





    http://www.bkjia.com/PHPjc/323394.html

    www.bkjia.com

    tru​​e

    http://www.bkjia.com/PHPjc/323394.html

    技術記事

    次のようにコードをコピーします。 function Files($path) { foreach(scandir($path) as $line) { if($line=='.'||$line=='..') continue; ( $path.'/'.$line)) ファイル($path.'/'.$line); else...





    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。