0

私はLinuxを初めて使用し、書き込もうとしているPHPスクリプト内でbashコマンドを操作しようとしています。これは、PHPでDirectoryIterator()を使用して繰り返し処理しているディレクトリから各PDFファイル名を書き込む必要があります。別のフォルダーにある.lstファイルで、各ファイル名がテキストファイルの新しい行にリストされています。

.lstファイルは次のようになります。

1.pdf
2.pdf3.pdf ..。
_

これが理にかなっていることを願っています。ヘルプ/指示をいただければ幸いです。

これが私がこれまでに思いついたコードです:

// Use the command line cp to copy each PDF file in the sourceDir to the destinationDir.
foreach ($srcDir as $entity) {

    /**
     * @var DirectoryIterator $entity
     */
    /*$result = rename($sourceDir . '/' . $entity->getFilename(), $destinationDir .'/' . $entity->getFileName());
    if(!$result)
    {
        throw Exception('Could not copy file ' . $entity->getFilename() . 'to destination directory ');
    }*/

    $cpString = 'cp ' . $sourceDir . '/' . $entity->getFilename() . ' ' . $destinationDir .'/' . $entity->getFileName() . ' 2<&1';
    passthru($cpString, $returnVar);

    if($entity->isFile() && strtoupper($entity->getExtension()) == 'PDF')
    {
        $cpString = 'cp ' . $sourceDir . '/' . $entity->getFilename() . ' ' . $destinationDir .'/' . $entity->getFileName();
        if ($counter = 1) {
            $catString = 'cat ' . $destinationDir . '/' . $batchNum . '.lst';
        }
        $cpString = ''
    }
    $counter++;
}
4

1 に答える 1

2
$fh = fopen("foo.lst", "w");

foreach ($srcDir as $entity)
    fwrite($fh, $entity->getFilename() . "\n");

fclose($fh);
于 2012-09-19T17:17:47.187 に答える