php - how to check if some files in array with allowed extensions can be unpacked
Get the solution ↓↓↓I want to check if some files are unpacked whe they are part of an allowed array of extensions. This is the extensions which are allowed to be unpacked:
$AllowedExts = array("gif", "jpeg", "jpg", "JPG", "png", "tif", "tiff", "bmp", "zip", "rar", "js", "css", "txt", "less", "pdf", "mp3"); // set allowed extensions
For unzipping, i have this code so far:
if(in_array($ext, $AllowedExts)) { // only files with allowed Exts can be extracted
$zip->extractTo(dirname($_POST['extractfile']), $zip->getNameIndex($i)); // extract in the same folder as where the zip file is
echo 'file(s) are unpacked';
}
else {
echo 'file(s) could not be unpacked';
}
Now i want in this loop a check if some files are unpacked and some files not.
so there must be something like:
if (all file(s) can be unpacked) {
// alle files are unpacked
}
elseif (only some files can be unpacked) {
// only some files are unpacked
}
else (no file could be unpacked) {
// no file could be unpacked
}
How do i have to create the if/else loop for this?
Answer
Solution:
Suppose you have a list of all extensions of your files in an array called$arr
. You could usearray_reduce
to check if all, some or none of your files can be extracted.
This code should work:
<?php
$AllowedExts = array("gif", "jpeg", "jpg", "JPG", "png", "tif", "tiff", "bmp", "zip", "rar", "js", "css", "txt", "less", "pdf", "mp3"); // set allowed extensions
$myExtenstions = ["zip", "rar", "js", "css", "bb", "txt2"];
$some=false;
$res = array_reduce(
$myExtenstions,
function($res, $a) use ($AllowedExts, &$some) {
$allowed = in_array($a, $AllowedExts);
if (!$some && $allowed) $some=true;
return $res && $allowed;
}, true
);
if ($res) {
var_dump("all files are unpacked");
}else if ($some){
var_dump("only some files are unpacked");
}else {
var_dump("no file could be unpacked");
}
Share solution ↓
Additional Information:
Link To Answer People are also looking for solutions of the problem: can't write image data to path
Didn't find the answer?
Our community is visited by hundreds of web development professionals every day. Ask your question and get a quick answer for free.
Similar questions
Find the answer in similar questions on our website.
Write quick answer
Do you know the answer to this question? Write a quick response to it. With your help, we will make our community stronger.