Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查ZIP文件的内容_Php_Search_Archive - Fatal编程技术网

Php 检查ZIP文件的内容

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

用户上传ZIP文件

PHP在ZIP文件中搜索“*.adi”

$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";
     }
   }
 }