gpt4 book ai didi

php - 如何防止从 zip 中提取 php 文件

转载 作者:行者123 更新时间:2023-12-04 00:10:09 27 4
gpt4 key购买 nike

我正在使用这段代码解压一个 .zip 文件

$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
$zip->extractTo('/my/destination/dir/');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}

假设:.zip 中有一个 .php 文件,我不想提取 .php 文件。我怎样才能防止这种情况发生?

最佳答案

您可以为 PHP >= 5.5 尝试这样的操作:

$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {

for ($i = 0; $i < $zip->numFiles; $i++) {
if( pathinfo($zip->getNameIndex($i)['extension'] != "php")){
$zip->extractTo('/my/destination/dir/', $zip->getNameIndex($i));
}
}
$zip->close();
}

或者这个 PHP < 5.5 :

$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {

for ($i = 0; $i < $zip->numFiles; $i++) {
$path_info = pathinfo($zip->getNameIndex($i));
$ext = $path_info['extension'];
if( $ext != "php")){
$zip->extractTo('/my/destination/dir/', $zip->getNameIndex($i));
}
}
$zip->close();
}

两者之间的唯一区别是 pathinfo功能。两者都将循环压缩文件中的所有文件,如果文件扩展名不是 php , 将其提取到 /my/destination/dir/ .

关于php - 如何防止从 zip 中提取 php 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37185636/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com