Voir this question. Je ne peux pas utiliser ce code:Pourquoi mon code postal ne fonctionne pas comme prévu?
function addFolderToZip($dir, $zipArchive, $zipdir = ''){
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
//Add the directory
$zipArchive->addEmptyDir($dir);
// Loop through all the files
while (($file = readdir($dh)) !== false) {
//If it's a folder, run the function again!
if(!is_file($dir . $file)){
// Skip parent and root directories
if(($file !== ".") && ($file !== "..")){
addFolderToZip($dir . $file . "/", $zipArchive, $zipdir . $file . "/");
}
}else{
// Add the files
$zipArchive->addFile($dir . $file, $zipdir . $file);
}
}
}
Veuillez écrire un exemple pour moi. Le deuxième problème est trop complexe.
Lorsque j'utilise la fonction addfile
, il va ajouter et apparaître dans l'archive comme un fichier et ce grand. Maintenant, quand je l'utilise:
$z = new ZipArchive();
$z->open('test.zip')
for ($i=0; $i< $z->numFiles;$i++) {
$aZipDtls = $z->statIndex($i);
echo $aZipDtls['name'];
}
il montre maintenant si j'ajouter un fichier dans le dossier comme ça:
$zip->addFile('/path/to/index.txt', 'dir/newname.txt');
il montre dans le soft un répertoire puis un fichier Winrar mais dans le code il le montre en un seul fichier.
Comme ça dans winrar:
dir/
dir/newname.txt
Dans mon système PHP, juste seulement afficher un fichier sans son répertoire, comme ça:
dir/newname.txt
Cela signifie qu'il est impossible d'ajouter un nouveau fichier dans un dir.
veuillez expliquer ce que vous voulez que nous écrivions un exemple pour vous. – Natrium
Votre problème n'est pas clair pour moi, et vous n'utilisez pas de ponctuation ou de majuscules, ce qui rend votre question difficile à lire. –