0

ディレクトリをスキャンしてこのディレクトリ内のファイルを削除するphpスクリプトを作成しようとしています。スキャンファイル拡張子が正しく機能しないという問題があります

<?php 
 if ($handle = opendir(''))
 {
    echo " Directory handle: $handle \n";
    echo "Entries: \n";


    while (false !== ($entry = readdir($handle))) 
    {
        echo" $entry :\n";
        $file_parts = pathinfo($entry);

        switch ($file_parts['extension']) 
        {
            case 'dmg':
                echo "dmg";
                break;

            default:
                echo "no file";
                break;

        }


    }

    closedir($handle);

}


?>

注意:未定義のインデックス:13行目の/Applications/MAMP/htdocs/dir.phpの拡張子

4

2 に答える 2

1

このエラーは、たとえば、パスに拡張子がない場合や何らかのエラーが発生した場合に発生します。

ファイルのファイルタイプを取得したい場合は、それができるのに遠回しな方法のように思えます

switch(filetype($dir.$file)){
      case 'dmg' ://And so on
}

ここ$dirにあるでしょう/Users/username/Downloads

于 2013-03-24T02:08:10.857 に答える
1

未定義のインデックスは、配列に存在しないことを意味します。

ドキュメントから:

options パラメータが渡されない場合、次の要素を含む連想配列が返されます: dirname、basename、extension (存在する場合)、および filename。

あなたのファイルには拡張子がありますか?

また、「.」を入れてください。(ドット)dir空白の代わりに。

を使用var_dump( $file_parts );して、それが何であるかを確認できます。

于 2013-03-24T02:08:16.530 に答える