0

我是 linux 新手并尝试在我尝试编写的 PHP 脚本中使用 bash 命令,我需要从我正在使用 PHP 中的 DirectoryIterator () 迭代的目录中写入每个 PDF 文件名一个 .lst 文件,我坐在另一个文件夹中,并且每个文件名都列在文本文件的新行中。

.lst 文件应如下所示:

1.pdf
2.pdf
3.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 回答