Как найти отсутствующие файлы .mp4 в каталоге?

У меня есть файлы, подобные этому на моем сервере:

aaaa.flv
aaaa.mp4
bbbb.flv
bbbb.mp4
cccc.flv
dddd.flv
dddd.mp4

Этот код не работает:

$dir=$_SERVER{'DOCUMENT_ROOT'}."/test/";
foreach(glob($dir . "*.flv") as $file)
{
$strip_ext=substr($file, 0, strrpos($file, "."));
$mp4_ext=$strip_ext.".mp4";
if (!file_exists($dir . $mp4_ext)) {
echo "Non-matching pair! ".$strip_ext."<BR>";
}
}

Как я могу найти свой .flv файлы, которые не имеют соответствия .mp4?

Я бы предпочел поместить скрипт в каталог и запустить его, чтобы он выплевывал все имена файлов без совпадения с .mp4, это указывало бы на файлы, которые мне нужно будет конвертировать.

0

Решение

Вместо того, чтобы делать итерированные проверки каталогов, если данный .mp4 файл существует, я лучше попробую (и посмотрим, не захлебнется ли он):

  1. извлекая все .flv файлы
  2. извлекая все .mp4 файлы
  3. изолировать пропавших .mp4 файлы
  4. начать преобразование

Код: (Mock Demo)

chdir($_SERVER{'DOCUMENT_ROOT'}."/test/");  // change working directory so that glob's output excludes the path
$flvs=array_map(function($f){return basename($f,'.flv');},glob("*.flv"));  // store .flv's and strip suffixes
$mp4s=array_map(function($f){return basename($f,'.mp4');},glob("*.mp4"));  // store .mp4's and strip suffixes
$need_conversion=array_diff($flvs,$mp4s);  // run ffmpeg() on these suffix-free files
// $need_conversion = array( 4 => 'cccc' )
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]