如何将当前文件添加到"删除列表"除了mp3和mp4扩展名的文件?

时间:2017-06-08 15:52:04

标签: php php-5.3

我想制作删除列表,但mp3和mp4文件除外

我的代码是

错误 致命错误:在第39行的E:\ xampp \ htdocs \ tes \ index.php中调用未定义的函数endsWith()

    $files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($rootPath),
    RecursiveIteratorIterator::LEAVES_ONLY
);

foreach ($files as $name => $file)
{
    // Skip directories (they would be added automatically)
    if (!$file->isDir())
    {
        // Get real and relative path for current file
        $filePath = $file->getRealPath();
        $relativePath = substr($filePath, strlen($rootPath) + 1);

        // Add current file to archive
        $zip->addFile($filePath, $relativePath);
        $zip->close();

        // Add current file to "delete list"
        // delete it later cause ZipArchive create archive only after calling close function and ZipArchive lock files until archive created)
        if ($file->getFilename().endsWith(".mp3")) error at this code
        {
            $filesToDelete[] = $filePath;
        }
    }
}

任何人都应该帮助我

2 个答案:

答案 0 :(得分:1)

同样,检查文件扩展名是不可靠的。您应该使用以下命令检查文件的mime类型:mime_content_type

在您的代码中,您可以执行以下操作:

// Add current file to "delete list"
        // delete it later cause ZipArchive create archive only after calling close function and ZipArchive lock files until archive created)
        if (mime_content_type($filePath) == "audio/mp3"))
        {
            $filesToDelete[] = $filePath;
        }

但要小心,因为mp3有很多不同的mime类型,你可以看到here

编辑: 如果您不想检查多个mime_types,可以使用in_array

if(in_array(mime_content_type($filePath), ['audio/mp3','audio/mpeg']))

答案 1 :(得分:0)

没有任何目的。你需要创建自己的。查看此示例。

startsWith() and endsWith() functions in PHP