| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
  [2011-03-17 10:44 UTC] hpdl at oscommerce dot com
 Description:
------------
Phar::extractTo() does not allow specific directories to be extracted. The 
documentation states the second parameter can be a file or directory to only 
extract the file or directory from the phar archive.
Specific files can be extracted however an exception is thrown when a directory is 
passed.
Test script:
---------------
<?php
  $phar = new Phar('/tmp/test.phar');
  $phar->buildFromDirectory('/path/to/source');
  unset($phar);
  $phar = new Phar('/tmp/test.phar');
  $phar->extractTo('/tmp/test/', 'subdir1/subdir2/', true); // throws exception
//  $phar->extractTo('/tmp/test/', 'subdir1/subdir2/file.txt', true); // works as intended
?>
Expected result:
----------------
The specific directory should be extracted from the phar archive.
Actual result:
--------------
Fatal error: Uncaught exception 'PharException' with message 'Phar Error: 
attempted to extract non-existent file "subdir1/subdir2/" from phar 
"/tmp/test.phar"' in /phar-test.php on line 7
PatchesPull Requests
Pull requests: 
 HistoryAllCommentsChangesGit/SVN commits             
             | 
    |||||||||||||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 03:00:01 2025 UTC | 
I can confirm that - extracting directories does not work: PHP Fatal error: Uncaught exception 'PharException' with message 'Phar Error: attempted to extract non-existent file "doc/" from phar "/home/cweiske/Dev/semanticscuttle/cwdev/dist/SemanticScuttle-0.98.X.phar"' in /home/cweiske/Dev/semanticscuttle/cwdev/phartest.php:3 Stack trace: #0 /home/cweiske/Dev/semanticscuttle/cwdev/phartest.php(3): Phar->extractTo('/tmp/test/', 'doc/', true) #1 {main} thrown in /home/cweiske/Dev/semanticscuttle/cwdev/phartest.php on line 3