我的服务器上有这样的文件:
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
的{{1}}个文件?
我更喜欢在目录中放一个脚本并运行它并让它吐出所有文件名而不匹配.mp4,这会告诉我需要转换的文件。
答案 0 :(得分:0)
而不是对给定的.mp4
文件存在进行迭代目录检查,我宁愿尝试(看看它是否会窒息):
.flv
个文件.mp4
个文件.mp4
个文件代码:(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' )