0

フォルダから画像とサムネイルをループしてデータベースに挿入したいと思います。is_dirを使用してディレクトリを除外したいと思います。

私は持っています:

$images = scandir('./images/all_comics/');
$thumbs = scandir('./images/thumbnails/');

for($x=0; $x<count($images); $x++) 
   {
    if(!is_dir($images[$x]))
       {
        //This shows all images WITHOUT directories
        echo $images[$x]; 

        //This is STILL adding images AND directories to database
        mysql_query("INSERT INTO images (imgpath, thumbpath) VALUES ('$images[$x]', '$thumbs[$x]')");
       }
   }

!is_dir、 echo $ images [$ x]の直後にチェックインします。これにより、必要に応じて、ディレクトリのないすべての画像がエコーアウトされます。

しかし、データベースの挿入を確認すると、ディレクトリがレコードとして追加されていることがわかります。どうしてこれなの?

ありがとうございました!

4

3 に答える 3

2

(問題はタイプミスだったので、古い回答を削除します)

scandir指定されたディレクトリ内のファイルのリストを返します。を使用するis_dirと、現在のディレクトリでそれらのファイルが検索されます。私はあなたがする必要があることは次のとおりだと思います:

if(!is_dir("./images/all_comics/" . $images[$x])) {
....
于 2012-09-20T17:30:47.463 に答える
2

あなたechoは内部ifで実行されますが、クエリは実行されません:

for($x=0; $x<count($images); $x++) 
{
       if(!is_dir($images[$x]))
       {
        echo $images[$x]; //This shows all images WITHOUT directories
        mysql_query("INSERT INTO images (imgpath, thumbpath) VALUES ('$images[$x]', '$thumbs[$x]')");
       }
}

また、PDOmysql_*を削除し、ディレクトリを除くファイルを参照する方法として検討してください。glob

于 2012-09-20T17:31:36.747 に答える
0

グロブも使用できます

$files = glob('./images/all_comics/*');
    foreach ($files as $file) {
        if (!is_dir($file)) {
            //Do Insert
        }
    }
于 2012-09-20T17:50:09.920 に答える