Php 检查ZIP文件的内容
用户上传ZIP文件 PHP在ZIP文件中搜索“*.adi”Php 检查ZIP文件的内容,php,search,archive,Php,Search,Archive,用户上传ZIP文件 PHP在ZIP文件中搜索“*.adi” $target\u file=$target\u dir。basename($_文件[“fileToUpload”][“name”]); $za=新的ZipArchive(); $za->open($target_文件); 对于($i=0;$inumFiles;$i++){ $stat=$za->statidex($i); print_r(basename($stat[“name”]).PHP_EOL); } $ResultOfZipF
$target\u file=$target\u dir。basename($_文件[“fileToUpload”][“name”]);
$za=新的ZipArchive();
$za->open($target_文件);
对于($i=0;$i<$za->numFiles;$i++){
$stat=$za->statidex($i);
print_r(basename($stat[“name”]).PHP_EOL);
}
$ResultOfZipFileSearch=explode($stat[“name”],PHP_EOL);
if(数组搜索(“*.adi”,$ResultOfZipFileSearch)){
回显“在ZIP中找到ADI文件…”;
}否则{
echo“ZIP中未找到ADI文件”;
}
如果找到ADI文件,脚本仍会回显“ZIP中未找到ADI文件”
请问怎么了
编辑:解决了这个问题
if ($zip->open($target_file) === true) {
for($i = 0; $i < $zip->numFiles; $i++) {
$entry = $zip->getNameIndex($i);
if(preg_match('#\.(adi)$#i', $entry)) {
echo "ADI found";
} else {
echo "NO ADI found";
}
}
}
if($zip->open($target\u file)==true){
对于($i=0;$i<$zip->numFiles;$i++){
$entry=$zip->getNameIndex($i);
if(preg#u match(“#\(adi)$#i',$entry)){
回声“ADI发现”;
}否则{
回声“未找到ADI”;
}
}
}
我可能错了,但我相信在这种情况下,array\u search()
是专门查找字符串'*.adi'不是任何东西。adi'我想你真正想要的是什么?Jon,谢谢。是的,我在找“任何东西”。阿迪。我假设*是一个通配符。因此,最简单的方法不是使用数组搜索,而是循环分解的结果,然后执行strpos(…)!==false
查看每个项目是否匹配(如果找到一个项目后你不在乎,请打断)。请Jon或任何人举个例子说明我将如何做到这一点?我的PHP知识非常基础,大部分不是我的代码,我只是通过谷歌搜索修改了它的一部分,以实现我的目标,但现在我遇到了麻烦。
if ($zip->open($target_file) === true) {
for($i = 0; $i < $zip->numFiles; $i++) {
$entry = $zip->getNameIndex($i);
if(preg_match('#\.(adi)$#i', $entry)) {
echo "ADI found";
} else {
echo "NO ADI found";
}
}
}