'Adding all subdirectories to a zip archive

In this case I am trying to add all files and subdirectories to my zip file.

$zip = new ZipArchive;
$zip->open('wordpress.zip', ZipArchive::CREATE);

// Adding all files
foreach (glob(CLIENT_PATH . "/*.*") as $file) {
    $filename = substr($file, strrpos($file, '/') + 1);
    echo $filename . '<br>';
   $zip->addFile($file, 'wordpress/wp-content/themes/' . $title . '/' . $filename);
}

// Adding all subdirectories
$directories = glob(CLIENT_PATH . '/*' , GLOB_ONLYDIR);
foreach (glob(CLIENT_PATH . '/*', GLOB_ONLYDIR) as $dir) {
    $zip->addEmptyDir('wordpress/wp-content/themes/' . $title . '/' . $dir);
}

$zip->close();

Adding all files works perfectly well but adding all subdirectories won't work as expected.

This is how my unzipped file looks:

enter image description here

The subdirectory of my main directory is called assets and it also includes some more subdirectories and they also have some subdirectories. But as you see in the image above, assets includes just nothing. And also, I don't understand why it starts with home/pomcanys/ etc. instead of assets.

How can I fix this? Any help would be appreciated!



Solution 1:[1]

To automatically include files from the sub-directories use the -r parameter for recursiveness:

zip -r foo.zip *

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Charles Derek