0

以下の php スクリプトは、特定のディレクトリに含まれるすべての .txt ファイルを 1 つずつ選択して作成します。まず、スクリプトが read.php を呼び出してファイルを分析し、詳細化した後、「copy」という名前のサブディレクトリにファイルがコピーされます。最後に、同じファイルをメイン ディレクトリから削除できます。これは、フォルダー内のすべてのファイルに対して、終了するまで行われます。

問題: 残念ながら、スクリプトは 0 KB のファイル (空) が見つかると停止します。おそらく問題は read.php ですが、これを変更することはできません。したがって、これらの不要な空のファイルを自動的に削除して、プロセスが定期的に行われるようにしたいと思います。

なにか提案を?TNX

 <?php
 $files = glob( '*.txt' );
 array_multisort(
    array_map( 'filemtime', $files ),
    SORT_NUMERIC,
    SORT_ASC,
    $files
 );

 $filename="$files[0]";
 foreach($files as $filename) {

    copy($filename,"./copy/$filename"); 
    echo "<b> $filename </b>File copied<br>";   

    include ("read.php");

    sleep(4);

    unlink($filename);
    echo "$filename elaborated and deleted from the main folder.<br>";  
 }
 ?>
4

1 に答える 1

1

filesize()- http://php.net/manual/en/function.filesize.php - を使用してファイルのサイズを決定し、ゼロになっているものをすべて削除します。

$filename="$files[0]";
 foreach($files as $filename) {
    if (filesize($filename) > 0)
    {
        copy($filename,"./copy/$filename"); 
        echo "<b> $filename </b>File copied<br>";   

        include ("read.php");

        sleep(4);

        unlink($filename);
        echo "$filename elaborated and deleted from the main folder.<br>";  
    } else {
        unlink($filename);
        echo "$filename is empty and deleted.<br>";  
    }
 }
于 2012-11-12T17:40:59.623 に答える