Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




unzip_file [ WordPress Function ]

unzip_file ( $file, $to )
Parameters:
  • (string) $file Full path and filename of zip archive
  • (string) $to Full path on the filesystem to extract archive to
Returns:
  • (mixed) WP_Error on failure, True on success
Defined at:



Unzips a specified ZIP file to a location on the Filesystem via the WordPress Filesystem Abstraction.

Assumes that WP_Filesystem() has already been called and set up. Does not extract a root-level __MACOSX directory, if present.

Attempts to increase the PHP Memory limit to 256M before uncompressing, However, The most memory required shouldn't be much larger than the Archive itself.

Source


<?php
function unzip_file($file$to) {
    global 
$wp_filesystem;

    if ( ! 
$wp_filesystem || !is_object($wp_filesystem) )
        return new 
WP_Error('fs_unavailable'__('Could not access filesystem.'));

    
// Unzip can use a lot of memory, but not this much hopefully
    
@ini_set'memory_limit'apply_filters'admin_memory_limit'WP_MAX_MEMORY_LIMIT ) );

    
$needed_dirs = array();
    
$to trailingslashit($to);

    
// Determine any parent dir's needed (of the upgrade directory)
    
if ( ! $wp_filesystem->is_dir($to) ) { //Only do parents if no children exist
        
$path preg_split('![/\\\]!'untrailingslashit($to));
        for ( 
$i count($path); $i >= 0$i-- ) {
            if ( empty(
$path[$i]) )
                continue;

            
$dir implode('/'array_slice($path0$i+1) );
            if ( 
preg_match('!^[a-z]:$!i'$dir) ) // Skip it if it looks like a Windows Drive letter.
                
continue;

            if ( ! 
$wp_filesystem->is_dir($dir) )
                
$needed_dirs[] = $dir;
            else
                break; 
// A folder exists, therefor, we dont need the check the levels below this
        
}
    }

    if ( 
class_exists('ZipArchive') && apply_filters('unzip_file_use_ziparchive'true ) ) {
        
$result _unzip_file_ziparchive($file$to$needed_dirs);
        if ( 
true === $result ) {
            return 
$result;
        } elseif ( 
is_wp_error($result) ) {
            if ( 
'incompatible_archive' != $result->get_error_code() )
                return 
$result;
        }
    }
    
// Fall through to PclZip if ZipArchive is not available, or encountered an error opening the file.
    
return _unzip_file_pclzip($file$to$needed_dirs);
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics