PATH:
home
/
ediuae
/
pearlandpetalbeautyspa.com
/
8f1b7c
home/ediuae/accubooksuae.com/wp-admin/includes/class-pclzip.php 0000644 00000600127 15160203626 0020617 0 ustar 00 <?php // -------------------------------------------------------------------------------- // PhpConcept Library - Zip Module 2.8.2 // -------------------------------------------------------------------------------- // License GNU/LGPL - Vincent Blavet - August 2009 // http://www.phpconcept.net // -------------------------------------------------------------------------------- // // Presentation : // PclZip is a PHP library that manage ZIP archives. // So far tests show that archives generated by PclZip are readable by // WinZip application and other tools. // // Description : // See readme.txt and http://www.phpconcept.net // // Warning : // This library and the associated files are non commercial, non professional // work. // It should not have unexpected results. However if any damage is caused by // this software the author can not be responsible. // The use of this software is at the risk of the user. // // -------------------------------------------------------------------------------- // $Id: pclzip.lib.php,v 1.60 2009/09/30 21:01:04 vblavet Exp $ // -------------------------------------------------------------------------------- // ----- Constants if (!defined('PCLZIP_READ_BLOCK_SIZE')) { define( 'PCLZIP_READ_BLOCK_SIZE', 2048 ); } // ----- File list separator // In version 1.x of PclZip, the separator for file list is a space // (which is not a very smart choice, specifically for windows paths !). // A better separator should be a comma (,). This constant gives you the // ability to change that. // However notice that changing this value, may have impact on existing // scripts, using space separated filenames. // Recommended values for compatibility with older versions : //define( 'PCLZIP_SEPARATOR', ' ' ); // Recommended values for smart separation of filenames. if (!defined('PCLZIP_SEPARATOR')) { define( 'PCLZIP_SEPARATOR', ',' ); } // ----- Error configuration // 0 : PclZip Class integrated error handling // 1 : PclError external library error handling. By enabling this // you must ensure that you have included PclError library. // [2,...] : reserved for future use if (!defined('PCLZIP_ERROR_EXTERNAL')) { define( 'PCLZIP_ERROR_EXTERNAL', 0 ); } // ----- Optional static temporary directory // By default temporary files are generated in the script current // path. // If defined : // - MUST BE terminated by a '/'. // - MUST be a valid, already created directory // Samples : // define( 'PCLZIP_TEMPORARY_DIR', '/temp/' ); // define( 'PCLZIP_TEMPORARY_DIR', 'C:/Temp/' ); if (!defined('PCLZIP_TEMPORARY_DIR')) { define( 'PCLZIP_TEMPORARY_DIR', '' ); } // ----- Optional threshold ratio for use of temporary files // Pclzip sense the size of the file to add/extract and decide to // use or not temporary file. The algorithm is looking for // memory_limit of PHP and apply a ratio. // threshold = memory_limit * ratio. // Recommended values are under 0.5. Default 0.47. // Samples : // define( 'PCLZIP_TEMPORARY_FILE_RATIO', 0.5 ); if (!defined('PCLZIP_TEMPORARY_FILE_RATIO')) { define( 'PCLZIP_TEMPORARY_FILE_RATIO', 0.47 ); } // -------------------------------------------------------------------------------- // ***** UNDER THIS LINE NOTHING NEEDS TO BE MODIFIED ***** // -------------------------------------------------------------------------------- // ----- Global variables $g_pclzip_version = "2.8.2"; // ----- Error codes // -1 : Unable to open file in binary write mode // -2 : Unable to open file in binary read mode // -3 : Invalid parameters // -4 : File does not exist // -5 : Filename is too long (max. 255) // -6 : Not a valid zip file // -7 : Invalid extracted file size // -8 : Unable to create directory // -9 : Invalid archive extension // -10 : Invalid archive format // -11 : Unable to delete file (unlink) // -12 : Unable to rename file (rename) // -13 : Invalid header checksum // -14 : Invalid archive size define( 'PCLZIP_ERR_USER_ABORTED', 2 ); define( 'PCLZIP_ERR_NO_ERROR', 0 ); define( 'PCLZIP_ERR_WRITE_OPEN_FAIL', -1 ); define( 'PCLZIP_ERR_READ_OPEN_FAIL', -2 ); define( 'PCLZIP_ERR_INVALID_PARAMETER', -3 ); define( 'PCLZIP_ERR_MISSING_FILE', -4 ); define( 'PCLZIP_ERR_FILENAME_TOO_LONG', -5 ); define( 'PCLZIP_ERR_INVALID_ZIP', -6 ); define( 'PCLZIP_ERR_BAD_EXTRACTED_FILE', -7 ); define( 'PCLZIP_ERR_DIR_CREATE_FAIL', -8 ); define( 'PCLZIP_ERR_BAD_EXTENSION', -9 ); define( 'PCLZIP_ERR_BAD_FORMAT', -10 ); define( 'PCLZIP_ERR_DELETE_FILE_FAIL', -11 ); define( 'PCLZIP_ERR_RENAME_FILE_FAIL', -12 ); define( 'PCLZIP_ERR_BAD_CHECKSUM', -13 ); define( 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', -14 ); define( 'PCLZIP_ERR_MISSING_OPTION_VALUE', -15 ); define( 'PCLZIP_ERR_INVALID_OPTION_VALUE', -16 ); define( 'PCLZIP_ERR_ALREADY_A_DIRECTORY', -17 ); define( 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION', -18 ); define( 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION', -19 ); define( 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE', -20 ); define( 'PCLZIP_ERR_DIRECTORY_RESTRICTION', -21 ); // ----- Options values define( 'PCLZIP_OPT_PATH', 77001 ); define( 'PCLZIP_OPT_ADD_PATH', 77002 ); define( 'PCLZIP_OPT_REMOVE_PATH', 77003 ); define( 'PCLZIP_OPT_REMOVE_ALL_PATH', 77004 ); define( 'PCLZIP_OPT_SET_CHMOD', 77005 ); define( 'PCLZIP_OPT_EXTRACT_AS_STRING', 77006 ); define( 'PCLZIP_OPT_NO_COMPRESSION', 77007 ); define( 'PCLZIP_OPT_BY_NAME', 77008 ); define( 'PCLZIP_OPT_BY_INDEX', 77009 ); define( 'PCLZIP_OPT_BY_EREG', 77010 ); define( 'PCLZIP_OPT_BY_PREG', 77011 ); define( 'PCLZIP_OPT_COMMENT', 77012 ); define( 'PCLZIP_OPT_ADD_COMMENT', 77013 ); define( 'PCLZIP_OPT_PREPEND_COMMENT', 77014 ); define( 'PCLZIP_OPT_EXTRACT_IN_OUTPUT', 77015 ); define( 'PCLZIP_OPT_REPLACE_NEWER', 77016 ); define( 'PCLZIP_OPT_STOP_ON_ERROR', 77017 ); // Having big trouble with crypt. Need to multiply 2 long int // which is not correctly supported by PHP ... //define( 'PCLZIP_OPT_CRYPT', 77018 ); define( 'PCLZIP_OPT_EXTRACT_DIR_RESTRICTION', 77019 ); define( 'PCLZIP_OPT_TEMP_FILE_THRESHOLD', 77020 ); define( 'PCLZIP_OPT_ADD_TEMP_FILE_THRESHOLD', 77020 ); // alias define( 'PCLZIP_OPT_TEMP_FILE_ON', 77021 ); define( 'PCLZIP_OPT_ADD_TEMP_FILE_ON', 77021 ); // alias define( 'PCLZIP_OPT_TEMP_FILE_OFF', 77022 ); define( 'PCLZIP_OPT_ADD_TEMP_FILE_OFF', 77022 ); // alias // ----- File description attributes define( 'PCLZIP_ATT_FILE_NAME', 79001 ); define( 'PCLZIP_ATT_FILE_NEW_SHORT_NAME', 79002 ); define( 'PCLZIP_ATT_FILE_NEW_FULL_NAME', 79003 ); define( 'PCLZIP_ATT_FILE_MTIME', 79004 ); define( 'PCLZIP_ATT_FILE_CONTENT', 79005 ); define( 'PCLZIP_ATT_FILE_COMMENT', 79006 ); // ----- Call backs values define( 'PCLZIP_CB_PRE_EXTRACT', 78001 ); define( 'PCLZIP_CB_POST_EXTRACT', 78002 ); define( 'PCLZIP_CB_PRE_ADD', 78003 ); define( 'PCLZIP_CB_POST_ADD', 78004 ); /* For future use define( 'PCLZIP_CB_PRE_LIST', 78005 ); define( 'PCLZIP_CB_POST_LIST', 78006 ); define( 'PCLZIP_CB_PRE_DELETE', 78007 ); define( 'PCLZIP_CB_POST_DELETE', 78008 ); */ // -------------------------------------------------------------------------------- // Class : PclZip // Description : // PclZip is the class that represent a Zip archive. // The public methods allow the manipulation of the archive. // Attributes : // Attributes must not be accessed directly. // Methods : // PclZip() : Object creator // create() : Creates the Zip archive // listContent() : List the content of the Zip archive // extract() : Extract the content of the archive // properties() : List the properties of the archive // -------------------------------------------------------------------------------- class PclZip { // ----- Filename of the zip file var $zipname = ''; // ----- File descriptor of the zip file var $zip_fd = 0; // ----- Internal error handling var $error_code = 1; var $error_string = ''; // ----- Current status of the magic_quotes_runtime // This value store the php configuration for magic_quotes // The class can then disable the magic_quotes and reset it after var $magic_quotes_status; // -------------------------------------------------------------------------------- // Function : PclZip() // Description : // Creates a PclZip object and set the name of the associated Zip archive // filename. // Note that no real action is taken, if the archive does not exist it is not // created. Use create() for that. // -------------------------------------------------------------------------------- function __construct($p_zipname) { // ----- Tests the zlib if (!function_exists('gzopen')) { die('Abort '.basename(__FILE__).' : Missing zlib extensions'); } // ----- Set the attributes $this->zipname = $p_zipname; $this->zip_fd = 0; $this->magic_quotes_status = -1; // ----- Return return; } public function PclZip($p_zipname) { self::__construct($p_zipname); } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // create($p_filelist, $p_add_dir="", $p_remove_dir="") // create($p_filelist, $p_option, $p_option_value, ...) // Description : // This method supports two different synopsis. The first one is historical. // This method creates a Zip Archive. The Zip file is created in the // filesystem. The files and directories indicated in $p_filelist // are added in the archive. See the parameters description for the // supported format of $p_filelist. // When a directory is in the list, the directory and its content is added // in the archive. // In this synopsis, the function takes an optional variable list of // options. See below the supported options. // Parameters : // $p_filelist : An array containing file or directory names, or // a string containing one filename or one directory name, or // a string containing a list of filenames and/or directory // names separated by spaces. // $p_add_dir : A path to add before the real path of the archived file, // in order to have it memorized in the archive. // $p_remove_dir : A path to remove from the real path of the file to archive, // in order to have a shorter path memorized in the archive. // When $p_add_dir and $p_remove_dir are set, $p_remove_dir // is removed first, before $p_add_dir is added. // Options : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_OPT_COMMENT : // PCLZIP_CB_PRE_ADD : // PCLZIP_CB_POST_ADD : // Return Values : // 0 on failure, // The list of the added files, with a status of the add action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- function create($p_filelist) { $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Set default values $v_options = array(); $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE; // ----- Look for variable options arguments $v_size = func_num_args(); // ----- Look for arguments if ($v_size > 1) { // ----- Get the arguments $v_arg_list = func_get_args(); // ----- Remove from the options list the first argument array_shift($v_arg_list); $v_size--; // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_ADD => 'optional', PCLZIP_CB_POST_ADD => 'optional', PCLZIP_OPT_NO_COMPRESSION => 'optional', PCLZIP_OPT_COMMENT => 'optional', PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', PCLZIP_OPT_TEMP_FILE_ON => 'optional', PCLZIP_OPT_TEMP_FILE_OFF => 'optional' //, PCLZIP_OPT_CRYPT => 'optional' )); if ($v_result != 1) { return 0; } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { // ----- Get the first argument $v_options[PCLZIP_OPT_ADD_PATH] = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1]; } else if ($v_size > 2) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); return 0; } } } // ----- Look for default option values $this->privOptionDefaultThreshold($v_options); // ----- Init $v_string_list = array(); $v_att_list = array(); $v_filedescr_list = array(); $p_result_list = array(); // ----- Look if the $p_filelist is really an array if (is_array($p_filelist)) { // ----- Look if the first element is also an array // This will mean that this is a file description entry if (isset($p_filelist[0]) && is_array($p_filelist[0])) { $v_att_list = $p_filelist; } // ----- The list is a list of string names else { $v_string_list = $p_filelist; } } // ----- Look if the $p_filelist is a string else if (is_string($p_filelist)) { // ----- Create a list from the string $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist); } // ----- Invalid variable type for $p_filelist else { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_filelist"); return 0; } // ----- Reformat the string list if (sizeof($v_string_list) != 0) { foreach ($v_string_list as $v_string) { if ($v_string != '') { $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string; } else { } } } // ----- For each file in the list check the attributes $v_supported_attributes = array ( PCLZIP_ATT_FILE_NAME => 'mandatory' ,PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional' ,PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional' ,PCLZIP_ATT_FILE_MTIME => 'optional' ,PCLZIP_ATT_FILE_CONTENT => 'optional' ,PCLZIP_ATT_FILE_COMMENT => 'optional' ); foreach ($v_att_list as $v_entry) { $v_result = $this->privFileDescrParseAtt($v_entry, $v_filedescr_list[], $v_options, $v_supported_attributes); if ($v_result != 1) { return 0; } } // ----- Expand the filelist (expand directories) $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options); if ($v_result != 1) { return 0; } // ----- Call the create fct $v_result = $this->privCreate($v_filedescr_list, $p_result_list, $v_options); if ($v_result != 1) { return 0; } // ----- Return return $p_result_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // add($p_filelist, $p_add_dir="", $p_remove_dir="") // add($p_filelist, $p_option, $p_option_value, ...) // Description : // This method supports two synopsis. The first one is historical. // This methods add the list of files in an existing archive. // If a file with the same name already exists, it is added at the end of the // archive, the first one is still present. // If the archive does not exist, it is created. // Parameters : // $p_filelist : An array containing file or directory names, or // a string containing one filename or one directory name, or // a string containing a list of filenames and/or directory // names separated by spaces. // $p_add_dir : A path to add before the real path of the archived file, // in order to have it memorized in the archive. // $p_remove_dir : A path to remove from the real path of the file to archive, // in order to have a shorter path memorized in the archive. // When $p_add_dir and $p_remove_dir are set, $p_remove_dir // is removed first, before $p_add_dir is added. // Options : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_OPT_COMMENT : // PCLZIP_OPT_ADD_COMMENT : // PCLZIP_OPT_PREPEND_COMMENT : // PCLZIP_CB_PRE_ADD : // PCLZIP_CB_POST_ADD : // Return Values : // 0 on failure, // The list of the added files, with a status of the add action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- function add($p_filelist) { $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Set default values $v_options = array(); $v_options[PCLZIP_OPT_NO_COMPRESSION] = FALSE; // ----- Look for variable options arguments $v_size = func_num_args(); // ----- Look for arguments if ($v_size > 1) { // ----- Get the arguments $v_arg_list = func_get_args(); // ----- Remove form the options list the first argument array_shift($v_arg_list); $v_size--; // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_ADD => 'optional', PCLZIP_CB_POST_ADD => 'optional', PCLZIP_OPT_NO_COMPRESSION => 'optional', PCLZIP_OPT_COMMENT => 'optional', PCLZIP_OPT_ADD_COMMENT => 'optional', PCLZIP_OPT_PREPEND_COMMENT => 'optional', PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', PCLZIP_OPT_TEMP_FILE_ON => 'optional', PCLZIP_OPT_TEMP_FILE_OFF => 'optional' //, PCLZIP_OPT_CRYPT => 'optional' )); if ($v_result != 1) { return 0; } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { // ----- Get the first argument $v_options[PCLZIP_OPT_ADD_PATH] = $v_add_path = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_options[PCLZIP_OPT_REMOVE_PATH] = $v_arg_list[1]; } else if ($v_size > 2) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); // ----- Return return 0; } } } // ----- Look for default option values $this->privOptionDefaultThreshold($v_options); // ----- Init $v_string_list = array(); $v_att_list = array(); $v_filedescr_list = array(); $p_result_list = array(); // ----- Look if the $p_filelist is really an array if (is_array($p_filelist)) { // ----- Look if the first element is also an array // This will mean that this is a file description entry if (isset($p_filelist[0]) && is_array($p_filelist[0])) { $v_att_list = $p_filelist; } // ----- The list is a list of string names else { $v_string_list = $p_filelist; } } // ----- Look if the $p_filelist is a string else if (is_string($p_filelist)) { // ----- Create a list from the string $v_string_list = explode(PCLZIP_SEPARATOR, $p_filelist); } // ----- Invalid variable type for $p_filelist else { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type '".gettype($p_filelist)."' for p_filelist"); return 0; } // ----- Reformat the string list if (sizeof($v_string_list) != 0) { foreach ($v_string_list as $v_string) { $v_att_list[][PCLZIP_ATT_FILE_NAME] = $v_string; } } // ----- For each file in the list check the attributes $v_supported_attributes = array ( PCLZIP_ATT_FILE_NAME => 'mandatory' ,PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional' ,PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional' ,PCLZIP_ATT_FILE_MTIME => 'optional' ,PCLZIP_ATT_FILE_CONTENT => 'optional' ,PCLZIP_ATT_FILE_COMMENT => 'optional' ); foreach ($v_att_list as $v_entry) { $v_result = $this->privFileDescrParseAtt($v_entry, $v_filedescr_list[], $v_options, $v_supported_attributes); if ($v_result != 1) { return 0; } } // ----- Expand the filelist (expand directories) $v_result = $this->privFileDescrExpand($v_filedescr_list, $v_options); if ($v_result != 1) { return 0; } // ----- Call the create fct $v_result = $this->privAdd($v_filedescr_list, $p_result_list, $v_options); if ($v_result != 1) { return 0; } // ----- Return return $p_result_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : listContent() // Description : // This public method, gives the list of the files and directories, with their // properties. // The properties of each entries in the list are (used also in other functions) : // filename : Name of the file. For a create or add action it is the filename // given by the user. For an extract function it is the filename // of the extracted file. // stored_filename : Name of the file / directory stored in the archive. // size : Size of the stored file. // compressed_size : Size of the file's data compressed in the archive // (without the headers overhead) // mtime : Last known modification date of the file (UNIX timestamp) // comment : Comment associated with the file // folder : true | false // index : index of the file in the archive // status : status of the action (depending of the action) : // Values are : // ok : OK ! // filtered : the file / dir is not extracted (filtered by user) // already_a_directory : the file can not be extracted because a // directory with the same name already exists // write_protected : the file can not be extracted because a file // with the same name already exists and is // write protected // newer_exist : the file was not extracted because a newer file exists // path_creation_fail : the file is not extracted because the folder // does not exist and can not be created // write_error : the file was not extracted because there was an // error while writing the file // read_error : the file was not extracted because there was an error // while reading the file // invalid_header : the file was not extracted because of an archive // format error (bad file header) // Note that each time a method can continue operating when there // is an action error on a file, the error is only logged in the file status. // Return Values : // 0 on an unrecoverable failure, // The list of the files in the archive. // -------------------------------------------------------------------------------- function listContent() { $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { return(0); } // ----- Call the extracting fct $p_list = array(); if (($v_result = $this->privList($p_list)) != 1) { unset($p_list); return(0); } // ----- Return return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // extract($p_path="./", $p_remove_path="") // extract([$p_option, $p_option_value, ...]) // Description : // This method supports two synopsis. The first one is historical. // This method extract all the files / directories from the archive to the // folder indicated in $p_path. // If you want to ignore the 'root' part of path of the memorized files // you can indicate this in the optional $p_remove_path parameter. // By default, if a newer file with the same name already exists, the // file is not extracted. // // If both PCLZIP_OPT_PATH and PCLZIP_OPT_ADD_PATH options // are used, the path indicated in PCLZIP_OPT_ADD_PATH is append // at the end of the path value of PCLZIP_OPT_PATH. // Parameters : // $p_path : Path where the files and directories are to be extracted // $p_remove_path : First part ('root' part) of the memorized path // (if any similar) to remove while extracting. // Options : // PCLZIP_OPT_PATH : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_CB_PRE_EXTRACT : // PCLZIP_CB_POST_EXTRACT : // Return Values : // 0 or a negative value on failure, // The list of the extracted files, with a status of the action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- function extract() { $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { return(0); } // ----- Set default values $v_options = array(); // $v_path = "./"; $v_path = ''; $v_remove_path = ""; $v_remove_all_path = false; // ----- Look for variable options arguments $v_size = func_num_args(); // ----- Default values for option $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; // ----- Look for arguments if ($v_size > 0) { // ----- Get the arguments $v_arg_list = func_get_args(); // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_PATH => 'optional', PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_EXTRACT => 'optional', PCLZIP_CB_POST_EXTRACT => 'optional', PCLZIP_OPT_SET_CHMOD => 'optional', PCLZIP_OPT_BY_NAME => 'optional', PCLZIP_OPT_BY_EREG => 'optional', PCLZIP_OPT_BY_PREG => 'optional', PCLZIP_OPT_BY_INDEX => 'optional', PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional', PCLZIP_OPT_REPLACE_NEWER => 'optional' ,PCLZIP_OPT_STOP_ON_ERROR => 'optional' ,PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', PCLZIP_OPT_TEMP_FILE_ON => 'optional', PCLZIP_OPT_TEMP_FILE_OFF => 'optional' )); if ($v_result != 1) { return 0; } // ----- Set the arguments if (isset($v_options[PCLZIP_OPT_PATH])) { $v_path = $v_options[PCLZIP_OPT_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; } if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { // ----- Check for '/' in last path char if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { $v_path .= '/'; } $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { // ----- Get the first argument $v_path = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_remove_path = $v_arg_list[1]; } else if ($v_size > 2) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); // ----- Return return 0; } } } // ----- Look for default option values $this->privOptionDefaultThreshold($v_options); // ----- Trace // ----- Call the extracting fct $p_list = array(); $v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options); if ($v_result < 1) { unset($p_list); return(0); } // ----- Return return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // extractByIndex($p_index, $p_path="./", $p_remove_path="") // extractByIndex($p_index, [$p_option, $p_option_value, ...]) // Description : // This method supports two synopsis. The first one is historical. // This method is doing a partial extract of the archive. // The extracted files or folders are identified by their index in the // archive (from 0 to n). // Note that if the index identify a folder, only the folder entry is // extracted, not all the files included in the archive. // Parameters : // $p_index : A single index (integer) or a string of indexes of files to // extract. The form of the string is "0,4-6,8-12" with only numbers // and '-' for range or ',' to separate ranges. No spaces or ';' // are allowed. // $p_path : Path where the files and directories are to be extracted // $p_remove_path : First part ('root' part) of the memorized path // (if any similar) to remove while extracting. // Options : // PCLZIP_OPT_PATH : // PCLZIP_OPT_ADD_PATH : // PCLZIP_OPT_REMOVE_PATH : // PCLZIP_OPT_REMOVE_ALL_PATH : // PCLZIP_OPT_EXTRACT_AS_STRING : The files are extracted as strings and // not as files. // The resulting content is in a new field 'content' in the file // structure. // This option must be used alone (any other options are ignored). // PCLZIP_CB_PRE_EXTRACT : // PCLZIP_CB_POST_EXTRACT : // Return Values : // 0 on failure, // The list of the extracted files, with a status of the action. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- //function extractByIndex($p_index, options...) function extractByIndex($p_index) { $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { return(0); } // ----- Set default values $v_options = array(); // $v_path = "./"; $v_path = ''; $v_remove_path = ""; $v_remove_all_path = false; // ----- Look for variable options arguments $v_size = func_num_args(); // ----- Default values for option $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; // ----- Look for arguments if ($v_size > 1) { // ----- Get the arguments $v_arg_list = func_get_args(); // ----- Remove form the options list the first argument array_shift($v_arg_list); $v_size--; // ----- Look for first arg if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_PATH => 'optional', PCLZIP_OPT_REMOVE_PATH => 'optional', PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', PCLZIP_OPT_ADD_PATH => 'optional', PCLZIP_CB_PRE_EXTRACT => 'optional', PCLZIP_CB_POST_EXTRACT => 'optional', PCLZIP_OPT_SET_CHMOD => 'optional', PCLZIP_OPT_REPLACE_NEWER => 'optional' ,PCLZIP_OPT_STOP_ON_ERROR => 'optional' ,PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', PCLZIP_OPT_TEMP_FILE_ON => 'optional', PCLZIP_OPT_TEMP_FILE_OFF => 'optional' )); if ($v_result != 1) { return 0; } // ----- Set the arguments if (isset($v_options[PCLZIP_OPT_PATH])) { $v_path = $v_options[PCLZIP_OPT_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_PATH])) { $v_remove_path = $v_options[PCLZIP_OPT_REMOVE_PATH]; } if (isset($v_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { $v_remove_all_path = $v_options[PCLZIP_OPT_REMOVE_ALL_PATH]; } if (isset($v_options[PCLZIP_OPT_ADD_PATH])) { // ----- Check for '/' in last path char if ((strlen($v_path) > 0) && (substr($v_path, -1) != '/')) { $v_path .= '/'; } $v_path .= $v_options[PCLZIP_OPT_ADD_PATH]; } if (!isset($v_options[PCLZIP_OPT_EXTRACT_AS_STRING])) { $v_options[PCLZIP_OPT_EXTRACT_AS_STRING] = FALSE; } else { } } // ----- Look for 2 args // Here we need to support the first historic synopsis of the // method. else { // ----- Get the first argument $v_path = $v_arg_list[0]; // ----- Look for the optional second argument if ($v_size == 2) { $v_remove_path = $v_arg_list[1]; } else if ($v_size > 2) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid number / type of arguments"); // ----- Return return 0; } } } // ----- Trace // ----- Trick // Here I want to reuse extractByRule(), so I need to parse the $p_index // with privParseOptions() $v_arg_trick = array (PCLZIP_OPT_BY_INDEX, $p_index); $v_options_trick = array(); $v_result = $this->privParseOptions($v_arg_trick, sizeof($v_arg_trick), $v_options_trick, array (PCLZIP_OPT_BY_INDEX => 'optional' )); if ($v_result != 1) { return 0; } $v_options[PCLZIP_OPT_BY_INDEX] = $v_options_trick[PCLZIP_OPT_BY_INDEX]; // ----- Look for default option values $this->privOptionDefaultThreshold($v_options); // ----- Call the extracting fct if (($v_result = $this->privExtractByRule($p_list, $v_path, $v_remove_path, $v_remove_all_path, $v_options)) < 1) { return(0); } // ----- Return return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : // delete([$p_option, $p_option_value, ...]) // Description : // This method removes files from the archive. // If no parameters are given, then all the archive is emptied. // Parameters : // None or optional arguments. // Options : // PCLZIP_OPT_BY_INDEX : // PCLZIP_OPT_BY_NAME : // PCLZIP_OPT_BY_EREG : // PCLZIP_OPT_BY_PREG : // Return Values : // 0 on failure, // The list of the files which are still present in the archive. // (see PclZip::listContent() for list entry format) // -------------------------------------------------------------------------------- function delete() { $v_result=1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { return(0); } // ----- Set default values $v_options = array(); // ----- Look for variable options arguments $v_size = func_num_args(); // ----- Look for arguments if ($v_size > 0) { // ----- Get the arguments $v_arg_list = func_get_args(); // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, array (PCLZIP_OPT_BY_NAME => 'optional', PCLZIP_OPT_BY_EREG => 'optional', PCLZIP_OPT_BY_PREG => 'optional', PCLZIP_OPT_BY_INDEX => 'optional' )); if ($v_result != 1) { return 0; } } // ----- Magic quotes trick $this->privDisableMagicQuotes(); // ----- Call the delete fct $v_list = array(); if (($v_result = $this->privDeleteByRule($v_list, $v_options)) != 1) { $this->privSwapBackMagicQuotes(); unset($v_list); return(0); } // ----- Magic quotes trick $this->privSwapBackMagicQuotes(); // ----- Return return $v_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : deleteByIndex() // Description : // ***** Deprecated ***** // delete(PCLZIP_OPT_BY_INDEX, $p_index) should be preferred. // -------------------------------------------------------------------------------- function deleteByIndex($p_index) { $p_list = $this->delete(PCLZIP_OPT_BY_INDEX, $p_index); // ----- Return return $p_list; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : properties() // Description : // This method gives the properties of the archive. // The properties are : // nb : Number of files in the archive // comment : Comment associated with the archive file // status : not_exist, ok // Parameters : // None // Return Values : // 0 on failure, // An array with the archive properties. // -------------------------------------------------------------------------------- function properties() { // ----- Reset the error handler $this->privErrorReset(); // ----- Magic quotes trick $this->privDisableMagicQuotes(); // ----- Check archive if (!$this->privCheckFormat()) { $this->privSwapBackMagicQuotes(); return(0); } // ----- Default properties $v_prop = array(); $v_prop['comment'] = ''; $v_prop['nb'] = 0; $v_prop['status'] = 'not_exist'; // ----- Look if file exists if (@is_file($this->zipname)) { // ----- Open the zip file if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) { $this->privSwapBackMagicQuotes(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); // ----- Return return 0; } // ----- Read the central directory information $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privSwapBackMagicQuotes(); return 0; } // ----- Close the zip file $this->privCloseFd(); // ----- Set the user attributes $v_prop['comment'] = $v_central_dir['comment']; $v_prop['nb'] = $v_central_dir['entries']; $v_prop['status'] = 'ok'; } // ----- Magic quotes trick $this->privSwapBackMagicQuotes(); // ----- Return return $v_prop; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : duplicate() // Description : // This method creates an archive by copying the content of an other one. If // the archive already exist, it is replaced by the new one without any warning. // Parameters : // $p_archive : The filename of a valid archive, or // a valid PclZip object. // Return Values : // 1 on success. // 0 or a negative value on error (error code). // -------------------------------------------------------------------------------- function duplicate($p_archive) { $v_result = 1; // ----- Reset the error handler $this->privErrorReset(); // ----- Look if the $p_archive is an instantiated PclZip object if ($p_archive instanceof pclzip) { // ----- Duplicate the archive $v_result = $this->privDuplicate($p_archive->zipname); } // ----- Look if the $p_archive is a string (so a filename) else if (is_string($p_archive)) { // ----- Check that $p_archive is a valid zip file // TBC : Should also check the archive format if (!is_file($p_archive)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "No file with filename '".$p_archive."'"); $v_result = PCLZIP_ERR_MISSING_FILE; } else { // ----- Duplicate the archive $v_result = $this->privDuplicate($p_archive); } } // ----- Invalid variable else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); $v_result = PCLZIP_ERR_INVALID_PARAMETER; } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : merge() // Description : // This method merge the $p_archive_to_add archive at the end of the current // one ($this). // If the archive ($this) does not exist, the merge becomes a duplicate. // If the $p_archive_to_add archive does not exist, the merge is a success. // Parameters : // $p_archive_to_add : It can be directly the filename of a valid zip archive, // or a PclZip object archive. // Return Values : // 1 on success, // 0 or negative values on error (see below). // -------------------------------------------------------------------------------- function merge($p_archive_to_add) { $v_result = 1; // ----- Reset the error handler $this->privErrorReset(); // ----- Check archive if (!$this->privCheckFormat()) { return(0); } // ----- Look if the $p_archive_to_add is an instantiated PclZip object if ($p_archive_to_add instanceof pclzip) { // ----- Merge the archive $v_result = $this->privMerge($p_archive_to_add); } // ----- Look if the $p_archive_to_add is a string (so a filename) else if (is_string($p_archive_to_add)) { // ----- Create a temporary archive $v_object_archive = new PclZip($p_archive_to_add); // ----- Merge the archive $v_result = $this->privMerge($v_object_archive); } // ----- Invalid variable else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid variable type p_archive_to_add"); $v_result = PCLZIP_ERR_INVALID_PARAMETER; } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : errorCode() // Description : // Parameters : // -------------------------------------------------------------------------------- function errorCode() { if (PCLZIP_ERROR_EXTERNAL == 1) { return(PclErrorCode()); } else { return($this->error_code); } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : errorName() // Description : // Parameters : // -------------------------------------------------------------------------------- function errorName($p_with_code=false) { $v_name = array ( PCLZIP_ERR_NO_ERROR => 'PCLZIP_ERR_NO_ERROR', PCLZIP_ERR_WRITE_OPEN_FAIL => 'PCLZIP_ERR_WRITE_OPEN_FAIL', PCLZIP_ERR_READ_OPEN_FAIL => 'PCLZIP_ERR_READ_OPEN_FAIL', PCLZIP_ERR_INVALID_PARAMETER => 'PCLZIP_ERR_INVALID_PARAMETER', PCLZIP_ERR_MISSING_FILE => 'PCLZIP_ERR_MISSING_FILE', PCLZIP_ERR_FILENAME_TOO_LONG => 'PCLZIP_ERR_FILENAME_TOO_LONG', PCLZIP_ERR_INVALID_ZIP => 'PCLZIP_ERR_INVALID_ZIP', PCLZIP_ERR_BAD_EXTRACTED_FILE => 'PCLZIP_ERR_BAD_EXTRACTED_FILE', PCLZIP_ERR_DIR_CREATE_FAIL => 'PCLZIP_ERR_DIR_CREATE_FAIL', PCLZIP_ERR_BAD_EXTENSION => 'PCLZIP_ERR_BAD_EXTENSION', PCLZIP_ERR_BAD_FORMAT => 'PCLZIP_ERR_BAD_FORMAT', PCLZIP_ERR_DELETE_FILE_FAIL => 'PCLZIP_ERR_DELETE_FILE_FAIL', PCLZIP_ERR_RENAME_FILE_FAIL => 'PCLZIP_ERR_RENAME_FILE_FAIL', PCLZIP_ERR_BAD_CHECKSUM => 'PCLZIP_ERR_BAD_CHECKSUM', PCLZIP_ERR_INVALID_ARCHIVE_ZIP => 'PCLZIP_ERR_INVALID_ARCHIVE_ZIP', PCLZIP_ERR_MISSING_OPTION_VALUE => 'PCLZIP_ERR_MISSING_OPTION_VALUE', PCLZIP_ERR_INVALID_OPTION_VALUE => 'PCLZIP_ERR_INVALID_OPTION_VALUE', PCLZIP_ERR_UNSUPPORTED_COMPRESSION => 'PCLZIP_ERR_UNSUPPORTED_COMPRESSION', PCLZIP_ERR_UNSUPPORTED_ENCRYPTION => 'PCLZIP_ERR_UNSUPPORTED_ENCRYPTION' ,PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE => 'PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE' ,PCLZIP_ERR_DIRECTORY_RESTRICTION => 'PCLZIP_ERR_DIRECTORY_RESTRICTION' ); if (isset($v_name[$this->error_code])) { $v_value = $v_name[$this->error_code]; } else { $v_value = 'NoName'; } if ($p_with_code) { return($v_value.' ('.$this->error_code.')'); } else { return($v_value); } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : errorInfo() // Description : // Parameters : // -------------------------------------------------------------------------------- function errorInfo($p_full=false) { if (PCLZIP_ERROR_EXTERNAL == 1) { return(PclErrorString()); } else { if ($p_full) { return($this->errorName(true)." : ".$this->error_string); } else { return($this->error_string." [code ".$this->error_code."]"); } } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // ***** UNDER THIS LINE ARE DEFINED PRIVATE INTERNAL FUNCTIONS ***** // ***** ***** // ***** THESES FUNCTIONS MUST NOT BE USED DIRECTLY ***** // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCheckFormat() // Description : // This method check that the archive exists and is a valid zip archive. // Several level of check exists. (future) // Parameters : // $p_level : Level of check. Default 0. // 0 : Check the first bytes (magic codes) (default value)) // 1 : 0 + Check the central directory (future) // 2 : 1 + Check each file header (future) // Return Values : // true on success, // false on error, the error code is set. // -------------------------------------------------------------------------------- function privCheckFormat($p_level=0) { $v_result = true; // ----- Reset the file system cache clearstatcache(); // ----- Reset the error handler $this->privErrorReset(); // ----- Look if the file exits if (!is_file($this->zipname)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "Missing archive file '".$this->zipname."'"); return(false); } // ----- Check that the file is readable if (!is_readable($this->zipname)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to read archive '".$this->zipname."'"); return(false); } // ----- Check the magic code // TBC // ----- Check the central header // TBC // ----- Check each file header // TBC // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privParseOptions() // Description : // This internal methods reads the variable list of arguments ($p_options_list, // $p_size) and generate an array with the options and values ($v_result_list). // $v_requested_options contains the options that can be present and those that // must be present. // $v_requested_options is an array, with the option value as key, and 'optional', // or 'mandatory' as value. // Parameters : // See above. // Return Values : // 1 on success. // 0 on failure. // -------------------------------------------------------------------------------- function privParseOptions(&$p_options_list, $p_size, &$v_result_list, $v_requested_options=false) { $v_result=1; // ----- Read the options $i=0; while ($i<$p_size) { // ----- Check if the option is supported if (!isset($v_requested_options[$p_options_list[$i]])) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid optional parameter '".$p_options_list[$i]."' for this method"); // ----- Return return PclZip::errorCode(); } // ----- Look for next option switch ($p_options_list[$i]) { // ----- Look for options that request a path value case PCLZIP_OPT_PATH : case PCLZIP_OPT_REMOVE_PATH : case PCLZIP_OPT_ADD_PATH : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], FALSE); $i++; break; case PCLZIP_OPT_TEMP_FILE_THRESHOLD : // ----- Check the number of parameters if (($i+1) >= $p_size) { PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); return PclZip::errorCode(); } // ----- Check for incompatible options if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); return PclZip::errorCode(); } // ----- Check the value $v_value = $p_options_list[$i+1]; if ((!is_integer($v_value)) || ($v_value<0)) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Integer expected for option '".PclZipUtilOptionText($p_options_list[$i])."'"); return PclZip::errorCode(); } // ----- Get the value (and convert it in bytes) $v_result_list[$p_options_list[$i]] = $v_value*1048576; $i++; break; case PCLZIP_OPT_TEMP_FILE_ON : // ----- Check for incompatible options if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_OFF])) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_OFF'"); return PclZip::errorCode(); } $v_result_list[$p_options_list[$i]] = true; break; case PCLZIP_OPT_TEMP_FILE_OFF : // ----- Check for incompatible options if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_ON])) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_ON'"); return PclZip::errorCode(); } // ----- Check for incompatible options if (isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Option '".PclZipUtilOptionText($p_options_list[$i])."' can not be used with option 'PCLZIP_OPT_TEMP_FILE_THRESHOLD'"); return PclZip::errorCode(); } $v_result_list[$p_options_list[$i]] = true; break; case PCLZIP_OPT_EXTRACT_DIR_RESTRICTION : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value if ( is_string($p_options_list[$i+1]) && ($p_options_list[$i+1] != '')) { $v_result_list[$p_options_list[$i]] = PclZipUtilTranslateWinPath($p_options_list[$i+1], FALSE); $i++; } else { } break; // ----- Look for options that request an array of string for value case PCLZIP_OPT_BY_NAME : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value if (is_string($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]][0] = $p_options_list[$i+1]; } else if (is_array($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } $i++; break; // ----- Look for options that request an EREG or PREG expression case PCLZIP_OPT_BY_EREG : // ereg() is deprecated starting with PHP 5.3. Move PCLZIP_OPT_BY_EREG // to PCLZIP_OPT_BY_PREG $p_options_list[$i] = PCLZIP_OPT_BY_PREG; case PCLZIP_OPT_BY_PREG : //case PCLZIP_OPT_CRYPT : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value if (is_string($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } $i++; break; // ----- Look for options that takes a string case PCLZIP_OPT_COMMENT : case PCLZIP_OPT_ADD_COMMENT : case PCLZIP_OPT_PREPEND_COMMENT : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '" .PclZipUtilOptionText($p_options_list[$i]) ."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value if (is_string($p_options_list[$i+1])) { $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Wrong parameter value for option '" .PclZipUtilOptionText($p_options_list[$i]) ."'"); // ----- Return return PclZip::errorCode(); } $i++; break; // ----- Look for options that request an array of index case PCLZIP_OPT_BY_INDEX : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value $v_work_list = array(); if (is_string($p_options_list[$i+1])) { // ----- Remove spaces $p_options_list[$i+1] = strtr($p_options_list[$i+1], ' ', ''); // ----- Parse items $v_work_list = explode(",", $p_options_list[$i+1]); } else if (is_integer($p_options_list[$i+1])) { $v_work_list[0] = $p_options_list[$i+1].'-'.$p_options_list[$i+1]; } else if (is_array($p_options_list[$i+1])) { $v_work_list = $p_options_list[$i+1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Value must be integer, string or array for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Reduce the index list // each index item in the list must be a couple with a start and // an end value : [0,3], [5-5], [8-10], ... // ----- Check the format of each item $v_sort_flag=false; $v_sort_value=0; for ($j=0; $j<sizeof($v_work_list); $j++) { // ----- Explode the item $v_item_list = explode("-", $v_work_list[$j]); $v_size_item_list = sizeof($v_item_list); // ----- TBC : Here we might check that each item is a // real integer ... // ----- Look for single value if ($v_size_item_list == 1) { // ----- Set the option value $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0]; $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[0]; } elseif ($v_size_item_list == 2) { // ----- Set the option value $v_result_list[$p_options_list[$i]][$j]['start'] = $v_item_list[0]; $v_result_list[$p_options_list[$i]][$j]['end'] = $v_item_list[1]; } else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Too many values in index range for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Look for list sort if ($v_result_list[$p_options_list[$i]][$j]['start'] < $v_sort_value) { $v_sort_flag=true; // ----- TBC : An automatic sort should be written ... // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Invalid order of index range for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } $v_sort_value = $v_result_list[$p_options_list[$i]][$j]['start']; } // ----- Sort the items if ($v_sort_flag) { // TBC : To Be Completed } // ----- Next option $i++; break; // ----- Look for options that request no value case PCLZIP_OPT_REMOVE_ALL_PATH : case PCLZIP_OPT_EXTRACT_AS_STRING : case PCLZIP_OPT_NO_COMPRESSION : case PCLZIP_OPT_EXTRACT_IN_OUTPUT : case PCLZIP_OPT_REPLACE_NEWER : case PCLZIP_OPT_STOP_ON_ERROR : $v_result_list[$p_options_list[$i]] = true; break; // ----- Look for options that request an octal value case PCLZIP_OPT_SET_CHMOD : // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value $v_result_list[$p_options_list[$i]] = $p_options_list[$i+1]; $i++; break; // ----- Look for options that request a call-back case PCLZIP_CB_PRE_EXTRACT : case PCLZIP_CB_POST_EXTRACT : case PCLZIP_CB_PRE_ADD : case PCLZIP_CB_POST_ADD : /* for future use case PCLZIP_CB_PRE_DELETE : case PCLZIP_CB_POST_DELETE : case PCLZIP_CB_PRE_LIST : case PCLZIP_CB_POST_LIST : */ // ----- Check the number of parameters if (($i+1) >= $p_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_OPTION_VALUE, "Missing parameter value for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Get the value $v_function_name = $p_options_list[$i+1]; // ----- Check that the value is a valid existing function if (!function_exists($v_function_name)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_OPTION_VALUE, "Function '".$v_function_name."()' is not an existing function for option '".PclZipUtilOptionText($p_options_list[$i])."'"); // ----- Return return PclZip::errorCode(); } // ----- Set the attribute $v_result_list[$p_options_list[$i]] = $v_function_name; $i++; break; default : // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Unknown parameter '" .$p_options_list[$i]."'"); // ----- Return return PclZip::errorCode(); } // ----- Next options $i++; } // ----- Look for mandatory options if ($v_requested_options !== false) { for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) { // ----- Look for mandatory option if ($v_requested_options[$key] == 'mandatory') { // ----- Look if present if (!isset($v_result_list[$key])) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")"); // ----- Return return PclZip::errorCode(); } } } } // ----- Look for default values if (!isset($v_result_list[PCLZIP_OPT_TEMP_FILE_THRESHOLD])) { } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privOptionDefaultThreshold() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privOptionDefaultThreshold(&$p_options) { $v_result=1; if (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) || isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) { return $v_result; } // ----- Get 'memory_limit' configuration value $v_memory_limit = ini_get('memory_limit'); $v_memory_limit = trim($v_memory_limit); $v_memory_limit_int = (int) $v_memory_limit; $last = strtolower(substr($v_memory_limit, -1)); if($last == 'g') //$v_memory_limit_int = $v_memory_limit_int*1024*1024*1024; $v_memory_limit_int = $v_memory_limit_int*1073741824; if($last == 'm') //$v_memory_limit_int = $v_memory_limit_int*1024*1024; $v_memory_limit_int = $v_memory_limit_int*1048576; if($last == 'k') $v_memory_limit_int = $v_memory_limit_int*1024; $p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] = floor($v_memory_limit_int*PCLZIP_TEMPORARY_FILE_RATIO); // ----- Confidence check : No threshold if value lower than 1M if ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] < 1048576) { unset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]); } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privFileDescrParseAtt() // Description : // Parameters : // Return Values : // 1 on success. // 0 on failure. // -------------------------------------------------------------------------------- function privFileDescrParseAtt(&$p_file_list, &$p_filedescr, $v_options, $v_requested_options=false) { $v_result=1; // ----- For each file in the list check the attributes foreach ($p_file_list as $v_key => $v_value) { // ----- Check if the option is supported if (!isset($v_requested_options[$v_key])) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file attribute '".$v_key."' for this file"); // ----- Return return PclZip::errorCode(); } // ----- Look for attribute switch ($v_key) { case PCLZIP_ATT_FILE_NAME : if (!is_string($v_value)) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } $p_filedescr['filename'] = PclZipUtilPathReduction($v_value); if ($p_filedescr['filename'] == '') { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty filename for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } break; case PCLZIP_ATT_FILE_NEW_SHORT_NAME : if (!is_string($v_value)) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } $p_filedescr['new_short_name'] = PclZipUtilPathReduction($v_value); if ($p_filedescr['new_short_name'] == '') { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty short filename for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } break; case PCLZIP_ATT_FILE_NEW_FULL_NAME : if (!is_string($v_value)) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } $p_filedescr['new_full_name'] = PclZipUtilPathReduction($v_value); if ($p_filedescr['new_full_name'] == '') { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid empty full filename for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } break; // ----- Look for options that takes a string case PCLZIP_ATT_FILE_COMMENT : if (!is_string($v_value)) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". String expected for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } $p_filedescr['comment'] = $v_value; break; case PCLZIP_ATT_FILE_MTIME : if (!is_integer($v_value)) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_ATTRIBUTE_VALUE, "Invalid type ".gettype($v_value).". Integer expected for attribute '".PclZipUtilOptionText($v_key)."'"); return PclZip::errorCode(); } $p_filedescr['mtime'] = $v_value; break; case PCLZIP_ATT_FILE_CONTENT : $p_filedescr['content'] = $v_value; break; default : // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Unknown parameter '".$v_key."'"); // ----- Return return PclZip::errorCode(); } // ----- Look for mandatory options if ($v_requested_options !== false) { for ($key=reset($v_requested_options); $key=key($v_requested_options); $key=next($v_requested_options)) { // ----- Look for mandatory option if ($v_requested_options[$key] == 'mandatory') { // ----- Look if present if (!isset($p_file_list[$key])) { PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Missing mandatory parameter ".PclZipUtilOptionText($key)."(".$key.")"); return PclZip::errorCode(); } } } } // end foreach } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privFileDescrExpand() // Description : // This method look for each item of the list to see if its a file, a folder // or a string to be added as file. For any other type of files (link, other) // just ignore the item. // Then prepare the information that will be stored for that file. // When its a folder, expand the folder with all the files that are in that // folder (recursively). // Parameters : // Return Values : // 1 on success. // 0 on failure. // -------------------------------------------------------------------------------- function privFileDescrExpand(&$p_filedescr_list, &$p_options) { $v_result=1; // ----- Create a result list $v_result_list = array(); // ----- Look each entry for ($i=0; $i<sizeof($p_filedescr_list); $i++) { // ----- Get filedescr $v_descr = $p_filedescr_list[$i]; // ----- Reduce the filename $v_descr['filename'] = PclZipUtilTranslateWinPath($v_descr['filename'], false); $v_descr['filename'] = PclZipUtilPathReduction($v_descr['filename']); // ----- Look for real file or folder if (file_exists($v_descr['filename'])) { if (@is_file($v_descr['filename'])) { $v_descr['type'] = 'file'; } else if (@is_dir($v_descr['filename'])) { $v_descr['type'] = 'folder'; } else if (@is_link($v_descr['filename'])) { // skip continue; } else { // skip continue; } } // ----- Look for string added as file else if (isset($v_descr['content'])) { $v_descr['type'] = 'virtual_file'; } // ----- Missing file else { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$v_descr['filename']."' does not exist"); // ----- Return return PclZip::errorCode(); } // ----- Calculate the stored filename $this->privCalculateStoredFilename($v_descr, $p_options); // ----- Add the descriptor in result list $v_result_list[sizeof($v_result_list)] = $v_descr; // ----- Look for folder if ($v_descr['type'] == 'folder') { // ----- List of items in folder $v_dirlist_descr = array(); $v_dirlist_nb = 0; if ($v_folder_handler = @opendir($v_descr['filename'])) { while (($v_item_handler = @readdir($v_folder_handler)) !== false) { // ----- Skip '.' and '..' if (($v_item_handler == '.') || ($v_item_handler == '..')) { continue; } // ----- Compose the full filename $v_dirlist_descr[$v_dirlist_nb]['filename'] = $v_descr['filename'].'/'.$v_item_handler; // ----- Look for different stored filename // Because the name of the folder was changed, the name of the // files/sub-folders also change if (($v_descr['stored_filename'] != $v_descr['filename']) && (!isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH]))) { if ($v_descr['stored_filename'] != '') { $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_descr['stored_filename'].'/'.$v_item_handler; } else { $v_dirlist_descr[$v_dirlist_nb]['new_full_name'] = $v_item_handler; } } $v_dirlist_nb++; } @closedir($v_folder_handler); } else { // TBC : unable to open folder in read mode } // ----- Expand each element of the list if ($v_dirlist_nb != 0) { // ----- Expand if (($v_result = $this->privFileDescrExpand($v_dirlist_descr, $p_options)) != 1) { return $v_result; } // ----- Concat the resulting list $v_result_list = array_merge($v_result_list, $v_dirlist_descr); } else { } // ----- Free local array unset($v_dirlist_descr); } } // ----- Get the result list $p_filedescr_list = $v_result_list; // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCreate() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privCreate($p_filedescr_list, &$p_result_list, &$p_options) { $v_result=1; $v_list_detail = array(); // ----- Magic quotes trick $this->privDisableMagicQuotes(); // ----- Open the file in write mode if (($v_result = $this->privOpenFd('wb')) != 1) { // ----- Return return $v_result; } // ----- Add the list of files $v_result = $this->privAddList($p_filedescr_list, $p_result_list, $p_options); // ----- Close $this->privCloseFd(); // ----- Magic quotes trick $this->privSwapBackMagicQuotes(); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAdd() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privAdd($p_filedescr_list, &$p_result_list, &$p_options) { $v_result=1; $v_list_detail = array(); // ----- Look if the archive exists or is empty if ((!is_file($this->zipname)) || (filesize($this->zipname) == 0)) { // ----- Do a create $v_result = $this->privCreate($p_filedescr_list, $p_result_list, $p_options); // ----- Return return $v_result; } // ----- Magic quotes trick $this->privDisableMagicQuotes(); // ----- Open the zip file if (($v_result=$this->privOpenFd('rb')) != 1) { // ----- Magic quotes trick $this->privSwapBackMagicQuotes(); // ----- Return return $v_result; } // ----- Read the central directory information $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Go to beginning of File @rewind($this->zip_fd); // ----- Creates a temporary file $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; // ----- Open the temporary file in write mode if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) { $this->privCloseFd(); $this->privSwapBackMagicQuotes(); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); // ----- Return return PclZip::errorCode(); } // ----- Copy the files from the archive to the temporary file // TBC : Here I should better append the file and go back to erase the central dir $v_size = $v_central_dir['offset']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = fread($this->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Swap the file descriptor // Here is a trick : I swap the temporary fd with the zip fd, in order to use // the following methods on the temporary fil and not the real archive $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Add the files $v_header_list = array(); if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) { fclose($v_zip_temp_fd); $this->privCloseFd(); @unlink($v_zip_temp_name); $this->privSwapBackMagicQuotes(); // ----- Return return $v_result; } // ----- Store the offset of the central dir $v_offset = @ftell($this->zip_fd); // ----- Copy the block of file headers from the old archive $v_size = $v_central_dir['size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($v_zip_temp_fd, $v_read_size); @fwrite($this->zip_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Create the Central Dir files header for ($i=0, $v_count=0; $i<sizeof($v_header_list); $i++) { // ----- Create the file header if ($v_header_list[$i]['status'] == 'ok') { if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) { fclose($v_zip_temp_fd); $this->privCloseFd(); @unlink($v_zip_temp_name); $this->privSwapBackMagicQuotes(); // ----- Return return $v_result; } $v_count++; } // ----- Transform the header to a 'usable' info $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); } // ----- Zip file comment $v_comment = $v_central_dir['comment']; if (isset($p_options[PCLZIP_OPT_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_COMMENT]; } if (isset($p_options[PCLZIP_OPT_ADD_COMMENT])) { $v_comment = $v_comment.$p_options[PCLZIP_OPT_ADD_COMMENT]; } if (isset($p_options[PCLZIP_OPT_PREPEND_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_PREPEND_COMMENT].$v_comment; } // ----- Calculate the size of the central header $v_size = @ftell($this->zip_fd)-$v_offset; // ----- Create the central dir footer if (($v_result = $this->privWriteCentralHeader($v_count+$v_central_dir['entries'], $v_size, $v_offset, $v_comment)) != 1) { // ----- Reset the file list unset($v_header_list); $this->privSwapBackMagicQuotes(); // ----- Return return $v_result; } // ----- Swap back the file descriptor $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Close $this->privCloseFd(); // ----- Close the temporary file @fclose($v_zip_temp_fd); // ----- Magic quotes trick $this->privSwapBackMagicQuotes(); // ----- Delete the zip file // TBC : I should test the result ... @unlink($this->zipname); // ----- Rename the temporary file // TBC : I should test the result ... //@rename($v_zip_temp_name, $this->zipname); PclZipUtilRename($v_zip_temp_name, $this->zipname); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privOpenFd() // Description : // Parameters : // -------------------------------------------------------------------------------- function privOpenFd($p_mode) { $v_result=1; // ----- Look if already open if ($this->zip_fd != 0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Zip file \''.$this->zipname.'\' already open'); // ----- Return return PclZip::errorCode(); } // ----- Open the zip file if (($this->zip_fd = @fopen($this->zipname, $p_mode)) == 0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in '.$p_mode.' mode'); // ----- Return return PclZip::errorCode(); } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCloseFd() // Description : // Parameters : // -------------------------------------------------------------------------------- function privCloseFd() { $v_result=1; if ($this->zip_fd != 0) @fclose($this->zip_fd); $this->zip_fd = 0; // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAddList() // Description : // $p_add_dir and $p_remove_dir will give the ability to memorize a path which is // different from the real path of the file. This is useful if you want to have PclTar // running in any directory, and memorize relative path from an other directory. // Parameters : // $p_list : An array containing the file or directory names to add in the tar // $p_result_list : list of added files with their properties (specially the status field) // $p_add_dir : Path to add in the filename path archived // $p_remove_dir : Path to remove in the filename path archived // Return Values : // -------------------------------------------------------------------------------- // function privAddList($p_list, &$p_result_list, $p_add_dir, $p_remove_dir, $p_remove_all_dir, &$p_options) function privAddList($p_filedescr_list, &$p_result_list, &$p_options) { $v_result=1; // ----- Add the files $v_header_list = array(); if (($v_result = $this->privAddFileList($p_filedescr_list, $v_header_list, $p_options)) != 1) { // ----- Return return $v_result; } // ----- Store the offset of the central dir $v_offset = @ftell($this->zip_fd); // ----- Create the Central Dir files header for ($i=0,$v_count=0; $i<sizeof($v_header_list); $i++) { // ----- Create the file header if ($v_header_list[$i]['status'] == 'ok') { if (($v_result = $this->privWriteCentralFileHeader($v_header_list[$i])) != 1) { // ----- Return return $v_result; } $v_count++; } // ----- Transform the header to a 'usable' info $this->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); } // ----- Zip file comment $v_comment = ''; if (isset($p_options[PCLZIP_OPT_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_COMMENT]; } // ----- Calculate the size of the central header $v_size = @ftell($this->zip_fd)-$v_offset; // ----- Create the central dir footer if (($v_result = $this->privWriteCentralHeader($v_count, $v_size, $v_offset, $v_comment)) != 1) { // ----- Reset the file list unset($v_header_list); // ----- Return return $v_result; } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAddFileList() // Description : // Parameters : // $p_filedescr_list : An array containing the file description // or directory names to add in the zip // $p_result_list : list of added files with their properties (specially the status field) // Return Values : // -------------------------------------------------------------------------------- function privAddFileList($p_filedescr_list, &$p_result_list, &$p_options) { $v_result=1; $v_header = array(); // ----- Recuperate the current number of elt in list $v_nb = sizeof($p_result_list); // ----- Loop on the files for ($j=0; ($j<sizeof($p_filedescr_list)) && ($v_result==1); $j++) { // ----- Format the filename $p_filedescr_list[$j]['filename'] = PclZipUtilTranslateWinPath($p_filedescr_list[$j]['filename'], false); // ----- Skip empty file names // TBC : Can this be possible ? not checked in DescrParseAtt ? if ($p_filedescr_list[$j]['filename'] == "") { continue; } // ----- Check the filename if ( ($p_filedescr_list[$j]['type'] != 'virtual_file') && (!file_exists($p_filedescr_list[$j]['filename']))) { PclZip::privErrorLog(PCLZIP_ERR_MISSING_FILE, "File '".$p_filedescr_list[$j]['filename']."' does not exist"); return PclZip::errorCode(); } // ----- Look if it is a file or a dir with no all path remove option // or a dir with all its path removed // if ( (is_file($p_filedescr_list[$j]['filename'])) // || ( is_dir($p_filedescr_list[$j]['filename']) if ( ($p_filedescr_list[$j]['type'] == 'file') || ($p_filedescr_list[$j]['type'] == 'virtual_file') || ( ($p_filedescr_list[$j]['type'] == 'folder') && ( !isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH]) || !$p_options[PCLZIP_OPT_REMOVE_ALL_PATH])) ) { // ----- Add the file $v_result = $this->privAddFile($p_filedescr_list[$j], $v_header, $p_options); if ($v_result != 1) { return $v_result; } // ----- Store the file infos $p_result_list[$v_nb++] = $v_header; } } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAddFile() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privAddFile($p_filedescr, &$p_header, &$p_options) { $v_result=1; // ----- Working variable $p_filename = $p_filedescr['filename']; // TBC : Already done in the fileAtt check ... ? if ($p_filename == "") { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_PARAMETER, "Invalid file list parameter (invalid or empty list)"); // ----- Return return PclZip::errorCode(); } // ----- Look for a stored different filename /* TBC : Removed if (isset($p_filedescr['stored_filename'])) { $v_stored_filename = $p_filedescr['stored_filename']; } else { $v_stored_filename = $p_filedescr['stored_filename']; } */ // ----- Set the file properties clearstatcache(); $p_header['version'] = 20; $p_header['version_extracted'] = 10; $p_header['flag'] = 0; $p_header['compression'] = 0; $p_header['crc'] = 0; $p_header['compressed_size'] = 0; $p_header['filename_len'] = strlen($p_filename); $p_header['extra_len'] = 0; $p_header['disk'] = 0; $p_header['internal'] = 0; $p_header['offset'] = 0; $p_header['filename'] = $p_filename; // TBC : Removed $p_header['stored_filename'] = $v_stored_filename; $p_header['stored_filename'] = $p_filedescr['stored_filename']; $p_header['extra'] = ''; $p_header['status'] = 'ok'; $p_header['index'] = -1; // ----- Look for regular file if ($p_filedescr['type']=='file') { $p_header['external'] = 0x00000000; $p_header['size'] = filesize($p_filename); } // ----- Look for regular folder else if ($p_filedescr['type']=='folder') { $p_header['external'] = 0x00000010; $p_header['mtime'] = filemtime($p_filename); $p_header['size'] = filesize($p_filename); } // ----- Look for virtual file else if ($p_filedescr['type'] == 'virtual_file') { $p_header['external'] = 0x00000000; $p_header['size'] = strlen($p_filedescr['content']); } // ----- Look for filetime if (isset($p_filedescr['mtime'])) { $p_header['mtime'] = $p_filedescr['mtime']; } else if ($p_filedescr['type'] == 'virtual_file') { $p_header['mtime'] = time(); } else { $p_header['mtime'] = filemtime($p_filename); } // ------ Look for file comment if (isset($p_filedescr['comment'])) { $p_header['comment_len'] = strlen($p_filedescr['comment']); $p_header['comment'] = $p_filedescr['comment']; } else { $p_header['comment_len'] = 0; $p_header['comment'] = ''; } // ----- Look for pre-add callback if (isset($p_options[PCLZIP_CB_PRE_ADD])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_header, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. $v_result = $p_options[PCLZIP_CB_PRE_ADD](PCLZIP_CB_PRE_ADD, $v_local_header); if ($v_result == 0) { // ----- Change the file status $p_header['status'] = "skipped"; $v_result = 1; } // ----- Update the information // Only some fields can be modified if ($p_header['stored_filename'] != $v_local_header['stored_filename']) { $p_header['stored_filename'] = PclZipUtilPathReduction($v_local_header['stored_filename']); } } // ----- Look for empty stored filename if ($p_header['stored_filename'] == "") { $p_header['status'] = "filtered"; } // ----- Check the path length if (strlen($p_header['stored_filename']) > 0xFF) { $p_header['status'] = 'filename_too_long'; } // ----- Look if no error, or file not skipped if ($p_header['status'] == 'ok') { // ----- Look for a file if ($p_filedescr['type'] == 'file') { // ----- Look for using temporary file to zip if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_header['size'])) ) ) { $v_result = $this->privAddFileUsingTempFile($p_filedescr, $p_header, $p_options); if ($v_result < PCLZIP_ERR_NO_ERROR) { return $v_result; } } // ----- Use "in memory" zip algo else { // ----- Open the source file if (($v_file = @fopen($p_filename, "rb")) == 0) { PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); return PclZip::errorCode(); } // ----- Read the file content if ($p_header['size'] > 0) { $v_content = @fread($v_file, $p_header['size']); } else { $v_content = ''; } // ----- Close the file @fclose($v_file); // ----- Calculate the CRC $p_header['crc'] = @crc32($v_content); // ----- Look for no compression if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { // ----- Set header parameters $p_header['compressed_size'] = $p_header['size']; $p_header['compression'] = 0; } // ----- Look for normal compression else { // ----- Compress the content $v_content = @gzdeflate($v_content); // ----- Set header parameters $p_header['compressed_size'] = strlen($v_content); $p_header['compression'] = 8; } // ----- Call the header generation if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { @fclose($v_file); return $v_result; } // ----- Write the compressed (or not) content @fwrite($this->zip_fd, $v_content, $p_header['compressed_size']); } } // ----- Look for a virtual file (a file from string) else if ($p_filedescr['type'] == 'virtual_file') { $v_content = $p_filedescr['content']; // ----- Calculate the CRC $p_header['crc'] = @crc32($v_content); // ----- Look for no compression if ($p_options[PCLZIP_OPT_NO_COMPRESSION]) { // ----- Set header parameters $p_header['compressed_size'] = $p_header['size']; $p_header['compression'] = 0; } // ----- Look for normal compression else { // ----- Compress the content $v_content = @gzdeflate($v_content); // ----- Set header parameters $p_header['compressed_size'] = strlen($v_content); $p_header['compression'] = 8; } // ----- Call the header generation if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { @fclose($v_file); return $v_result; } // ----- Write the compressed (or not) content @fwrite($this->zip_fd, $v_content, $p_header['compressed_size']); } // ----- Look for a directory else if ($p_filedescr['type'] == 'folder') { // ----- Look for directory last '/' if (@substr($p_header['stored_filename'], -1) != '/') { $p_header['stored_filename'] .= '/'; } // ----- Set the file properties $p_header['size'] = 0; //$p_header['external'] = 0x41FF0010; // Value for a folder : to be checked $p_header['external'] = 0x00000010; // Value for a folder : to be checked // ----- Call the header generation if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { return $v_result; } } } // ----- Look for post-add callback if (isset($p_options[PCLZIP_CB_POST_ADD])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_header, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. $v_result = $p_options[PCLZIP_CB_POST_ADD](PCLZIP_CB_POST_ADD, $v_local_header); if ($v_result == 0) { // ----- Ignored $v_result = 1; } // ----- Update the information // Nothing can be modified } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privAddFileUsingTempFile() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privAddFileUsingTempFile($p_filedescr, &$p_header, &$p_options) { $v_result=PCLZIP_ERR_NO_ERROR; // ----- Working variable $p_filename = $p_filedescr['filename']; // ----- Open the source file if (($v_file = @fopen($p_filename, "rb")) == 0) { PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, "Unable to open file '$p_filename' in binary read mode"); return PclZip::errorCode(); } // ----- Creates a compressed temporary file $v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz'; if (($v_file_compressed = @gzopen($v_gzip_temp_name, "wb")) == 0) { fclose($v_file); PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary write mode'); return PclZip::errorCode(); } // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks $v_size = filesize($p_filename); while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($v_file, $v_read_size); //$v_binary_data = pack('a'.$v_read_size, $v_buffer); @gzputs($v_file_compressed, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Close the file @fclose($v_file); @gzclose($v_file_compressed); // ----- Check the minimum file size if (filesize($v_gzip_temp_name) < 18) { PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'gzip temporary file \''.$v_gzip_temp_name.'\' has invalid filesize - should be minimum 18 bytes'); return PclZip::errorCode(); } // ----- Extract the compressed attributes if (($v_file_compressed = @fopen($v_gzip_temp_name, "rb")) == 0) { PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); return PclZip::errorCode(); } // ----- Read the gzip file header $v_binary_data = @fread($v_file_compressed, 10); $v_data_header = unpack('a1id1/a1id2/a1cm/a1flag/Vmtime/a1xfl/a1os', $v_binary_data); // ----- Check some parameters $v_data_header['os'] = bin2hex($v_data_header['os']); // ----- Read the gzip file footer @fseek($v_file_compressed, filesize($v_gzip_temp_name)-8); $v_binary_data = @fread($v_file_compressed, 8); $v_data_footer = unpack('Vcrc/Vcompressed_size', $v_binary_data); // ----- Set the attributes $p_header['compression'] = ord($v_data_header['cm']); //$p_header['mtime'] = $v_data_header['mtime']; $p_header['crc'] = $v_data_footer['crc']; $p_header['compressed_size'] = filesize($v_gzip_temp_name)-18; // ----- Close the file @fclose($v_file_compressed); // ----- Call the header generation if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { return $v_result; } // ----- Add the compressed data if (($v_file_compressed = @fopen($v_gzip_temp_name, "rb")) == 0) { PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); return PclZip::errorCode(); } // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks fseek($v_file_compressed, 10); $v_size = $p_header['compressed_size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($v_file_compressed, $v_read_size); //$v_binary_data = pack('a'.$v_read_size, $v_buffer); @fwrite($this->zip_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Close the file @fclose($v_file_compressed); // ----- Unlink the temporary file @unlink($v_gzip_temp_name); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCalculateStoredFilename() // Description : // Based on file descriptor properties and global options, this method // calculate the filename that will be stored in the archive. // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privCalculateStoredFilename(&$p_filedescr, &$p_options) { $v_result=1; // ----- Working variables $p_filename = $p_filedescr['filename']; if (isset($p_options[PCLZIP_OPT_ADD_PATH])) { $p_add_dir = $p_options[PCLZIP_OPT_ADD_PATH]; } else { $p_add_dir = ''; } if (isset($p_options[PCLZIP_OPT_REMOVE_PATH])) { $p_remove_dir = $p_options[PCLZIP_OPT_REMOVE_PATH]; } else { $p_remove_dir = ''; } if (isset($p_options[PCLZIP_OPT_REMOVE_ALL_PATH])) { $p_remove_all_dir = $p_options[PCLZIP_OPT_REMOVE_ALL_PATH]; } else { $p_remove_all_dir = 0; } // ----- Look for full name change if (isset($p_filedescr['new_full_name'])) { // ----- Remove drive letter if any $v_stored_filename = PclZipUtilTranslateWinPath($p_filedescr['new_full_name']); } // ----- Look for path and/or short name change else { // ----- Look for short name change // Its when we change just the filename but not the path if (isset($p_filedescr['new_short_name'])) { $v_path_info = pathinfo($p_filename); $v_dir = ''; if ($v_path_info['dirname'] != '') { $v_dir = $v_path_info['dirname'].'/'; } $v_stored_filename = $v_dir.$p_filedescr['new_short_name']; } else { // ----- Calculate the stored filename $v_stored_filename = $p_filename; } // ----- Look for all path to remove if ($p_remove_all_dir) { $v_stored_filename = basename($p_filename); } // ----- Look for partial path remove else if ($p_remove_dir != "") { if (substr($p_remove_dir, -1) != '/') $p_remove_dir .= "/"; if ( (substr($p_filename, 0, 2) == "./") || (substr($p_remove_dir, 0, 2) == "./")) { if ( (substr($p_filename, 0, 2) == "./") && (substr($p_remove_dir, 0, 2) != "./")) { $p_remove_dir = "./".$p_remove_dir; } if ( (substr($p_filename, 0, 2) != "./") && (substr($p_remove_dir, 0, 2) == "./")) { $p_remove_dir = substr($p_remove_dir, 2); } } $v_compare = PclZipUtilPathInclusion($p_remove_dir, $v_stored_filename); if ($v_compare > 0) { if ($v_compare == 2) { $v_stored_filename = ""; } else { $v_stored_filename = substr($v_stored_filename, strlen($p_remove_dir)); } } } // ----- Remove drive letter if any $v_stored_filename = PclZipUtilTranslateWinPath($v_stored_filename); // ----- Look for path to add if ($p_add_dir != "") { if (substr($p_add_dir, -1) == "/") $v_stored_filename = $p_add_dir.$v_stored_filename; else $v_stored_filename = $p_add_dir."/".$v_stored_filename; } } // ----- Filename (reduce the path of stored name) $v_stored_filename = PclZipUtilPathReduction($v_stored_filename); $p_filedescr['stored_filename'] = $v_stored_filename; // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privWriteFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privWriteFileHeader(&$p_header) { $v_result=1; // ----- Store the offset position of the file $p_header['offset'] = ftell($this->zip_fd); // ----- Transform UNIX mtime to DOS format mdate/mtime $v_date = getdate($p_header['mtime']); $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; // ----- Packed data $v_binary_data = pack("VvvvvvVVVvv", 0x04034b50, $p_header['version_extracted'], $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], $p_header['compressed_size'], $p_header['size'], strlen($p_header['stored_filename']), $p_header['extra_len']); // ----- Write the first 148 bytes of the header in the archive fputs($this->zip_fd, $v_binary_data, 30); // ----- Write the variable fields if (strlen($p_header['stored_filename']) != 0) { fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); } if ($p_header['extra_len'] != 0) { fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privWriteCentralFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privWriteCentralFileHeader(&$p_header) { $v_result=1; // TBC //for(reset($p_header); $key = key($p_header); next($p_header)) { //} // ----- Transform UNIX mtime to DOS format mdate/mtime $v_date = getdate($p_header['mtime']); $v_mtime = ($v_date['hours']<<11) + ($v_date['minutes']<<5) + $v_date['seconds']/2; $v_mdate = (($v_date['year']-1980)<<9) + ($v_date['mon']<<5) + $v_date['mday']; // ----- Packed data $v_binary_data = pack("VvvvvvvVVVvvvvvVV", 0x02014b50, $p_header['version'], $p_header['version_extracted'], $p_header['flag'], $p_header['compression'], $v_mtime, $v_mdate, $p_header['crc'], $p_header['compressed_size'], $p_header['size'], strlen($p_header['stored_filename']), $p_header['extra_len'], $p_header['comment_len'], $p_header['disk'], $p_header['internal'], $p_header['external'], $p_header['offset']); // ----- Write the 42 bytes of the header in the zip file fputs($this->zip_fd, $v_binary_data, 46); // ----- Write the variable fields if (strlen($p_header['stored_filename']) != 0) { fputs($this->zip_fd, $p_header['stored_filename'], strlen($p_header['stored_filename'])); } if ($p_header['extra_len'] != 0) { fputs($this->zip_fd, $p_header['extra'], $p_header['extra_len']); } if ($p_header['comment_len'] != 0) { fputs($this->zip_fd, $p_header['comment'], $p_header['comment_len']); } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privWriteCentralHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privWriteCentralHeader($p_nb_entries, $p_size, $p_offset, $p_comment) { $v_result=1; // ----- Packed data $v_binary_data = pack("VvvvvVVv", 0x06054b50, 0, 0, $p_nb_entries, $p_nb_entries, $p_size, $p_offset, strlen($p_comment)); // ----- Write the 22 bytes of the header in the zip file fputs($this->zip_fd, $v_binary_data, 22); // ----- Write the variable fields if (strlen($p_comment) != 0) { fputs($this->zip_fd, $p_comment, strlen($p_comment)); } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privList() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privList(&$p_list) { $v_result=1; // ----- Magic quotes trick $this->privDisableMagicQuotes(); // ----- Open the zip file if (($this->zip_fd = @fopen($this->zipname, 'rb')) == 0) { // ----- Magic quotes trick $this->privSwapBackMagicQuotes(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive \''.$this->zipname.'\' in binary read mode'); // ----- Return return PclZip::errorCode(); } // ----- Read the central directory information $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Go to beginning of Central Dir @rewind($this->zip_fd); if (@fseek($this->zip_fd, $v_central_dir['offset'])) { $this->privSwapBackMagicQuotes(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return return PclZip::errorCode(); } // ----- Read each entry for ($i=0; $i<$v_central_dir['entries']; $i++) { // ----- Read the file header if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) { $this->privSwapBackMagicQuotes(); return $v_result; } $v_header['index'] = $i; // ----- Get the only interesting attributes $this->privConvertHeader2FileInfo($v_header, $p_list[$i]); unset($v_header); } // ----- Close the zip file $this->privCloseFd(); // ----- Magic quotes trick $this->privSwapBackMagicQuotes(); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privConvertHeader2FileInfo() // Description : // This function takes the file information from the central directory // entries and extract the interesting parameters that will be given back. // The resulting file infos are set in the array $p_info // $p_info['filename'] : Filename with full path. Given by user (add), // extracted in the filesystem (extract). // $p_info['stored_filename'] : Stored filename in the archive. // $p_info['size'] = Size of the file. // $p_info['compressed_size'] = Compressed size of the file. // $p_info['mtime'] = Last modification date of the file. // $p_info['comment'] = Comment associated with the file. // $p_info['folder'] = true/false : indicates if the entry is a folder or not. // $p_info['status'] = status of the action on the file. // $p_info['crc'] = CRC of the file content. // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privConvertHeader2FileInfo($p_header, &$p_info) { $v_result=1; // ----- Get the interesting attributes $v_temp_path = PclZipUtilPathReduction($p_header['filename']); $p_info['filename'] = $v_temp_path; $v_temp_path = PclZipUtilPathReduction($p_header['stored_filename']); $p_info['stored_filename'] = $v_temp_path; $p_info['size'] = $p_header['size']; $p_info['compressed_size'] = $p_header['compressed_size']; $p_info['mtime'] = $p_header['mtime']; $p_info['comment'] = $p_header['comment']; $p_info['folder'] = (($p_header['external']&0x00000010)==0x00000010); $p_info['index'] = $p_header['index']; $p_info['status'] = $p_header['status']; $p_info['crc'] = $p_header['crc']; // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractByRule() // Description : // Extract a file or directory depending of rules (by index, by name, ...) // Parameters : // $p_file_list : An array where will be placed the properties of each // extracted file // $p_path : Path to add while writing the extracted files // $p_remove_path : Path to remove (from the file memorized path) while writing the // extracted files. If the path does not match the file path, // the file is extracted with its memorized path. // $p_remove_path does not apply to 'list' mode. // $p_path and $p_remove_path are commulative. // Return Values : // 1 on success,0 or less on error (see error code list) // -------------------------------------------------------------------------------- function privExtractByRule(&$p_file_list, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) { $v_result=1; // ----- Magic quotes trick $this->privDisableMagicQuotes(); // ----- Check the path if ( ($p_path == "") || ( (substr($p_path, 0, 1) != "/") && (substr($p_path, 0, 3) != "../") && (substr($p_path,1,2)!=":/"))) $p_path = "./".$p_path; // ----- Reduce the path last (and duplicated) '/' if (($p_path != "./") && ($p_path != "/")) { // ----- Look for the path end '/' while (substr($p_path, -1) == "/") { $p_path = substr($p_path, 0, strlen($p_path)-1); } } // ----- Look for path to remove format (should end by /) if (($p_remove_path != "") && (substr($p_remove_path, -1) != '/')) { $p_remove_path .= '/'; } $p_remove_path_size = strlen($p_remove_path); // ----- Open the zip file if (($v_result = $this->privOpenFd('rb')) != 1) { $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Read the central directory information $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { // ----- Close the zip file $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Start at beginning of Central Dir $v_pos_entry = $v_central_dir['offset']; // ----- Read each entry $j_start = 0; for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { // ----- Read next Central dir entry @rewind($this->zip_fd); if (@fseek($this->zip_fd, $v_pos_entry)) { // ----- Close the zip file $this->privCloseFd(); $this->privSwapBackMagicQuotes(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return return PclZip::errorCode(); } // ----- Read the file header $v_header = array(); if (($v_result = $this->privReadCentralFileHeader($v_header)) != 1) { // ----- Close the zip file $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Store the index $v_header['index'] = $i; // ----- Store the file position $v_pos_entry = ftell($this->zip_fd); // ----- Look for the specific extract rules $v_extract = false; // ----- Look for extract by name rule if ( (isset($p_options[PCLZIP_OPT_BY_NAME])) && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { // ----- Look if the filename is in the list for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_extract); $j++) { // ----- Look for a directory if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") { // ----- Look if the directory is in the filename path if ( (strlen($v_header['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) && (substr($v_header['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { $v_extract = true; } } // ----- Look for a filename elseif ($v_header['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { $v_extract = true; } } } // ----- Look for extract by ereg rule // ereg() is deprecated with PHP 5.3 /* else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header['stored_filename'])) { $v_extract = true; } } */ // ----- Look for extract by preg rule else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header['stored_filename'])) { $v_extract = true; } } // ----- Look for extract by index rule else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX])) && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { // ----- Look if the index is in the list for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_extract); $j++) { if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { $v_extract = true; } if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { $j_start = $j+1; } if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { break; } } } // ----- Look for no rule, which means extract all the archive else { $v_extract = true; } // ----- Check compression method if ( ($v_extract) && ( ($v_header['compression'] != 8) && ($v_header['compression'] != 0))) { $v_header['status'] = 'unsupported_compression'; // ----- Look for PCLZIP_OPT_STOP_ON_ERROR if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { $this->privSwapBackMagicQuotes(); PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_COMPRESSION, "Filename '".$v_header['stored_filename']."' is " ."compressed by an unsupported compression " ."method (".$v_header['compression'].") "); return PclZip::errorCode(); } } // ----- Check encrypted files if (($v_extract) && (($v_header['flag'] & 1) == 1)) { $v_header['status'] = 'unsupported_encryption'; // ----- Look for PCLZIP_OPT_STOP_ON_ERROR if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { $this->privSwapBackMagicQuotes(); PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_ENCRYPTION, "Unsupported encryption for " ." filename '".$v_header['stored_filename'] ."'"); return PclZip::errorCode(); } } // ----- Look for real extraction if (($v_extract) && ($v_header['status'] != 'ok')) { $v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++]); if ($v_result != 1) { $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result; } $v_extract = false; } // ----- Look for real extraction if ($v_extract) { // ----- Go to the file position @rewind($this->zip_fd); if (@fseek($this->zip_fd, $v_header['offset'])) { // ----- Close the zip file $this->privCloseFd(); $this->privSwapBackMagicQuotes(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return return PclZip::errorCode(); } // ----- Look for extraction as string if ($p_options[PCLZIP_OPT_EXTRACT_AS_STRING]) { $v_string = ''; // ----- Extracting the file $v_result1 = $this->privExtractFileAsString($v_header, $v_string, $p_options); if ($v_result1 < 1) { $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result1; } // ----- Get the only interesting attributes if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted])) != 1) { // ----- Close the zip file $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Set the file content $p_file_list[$v_nb_extracted]['content'] = $v_string; // ----- Next extracted file $v_nb_extracted++; // ----- Look for user callback abort if ($v_result1 == 2) { break; } } // ----- Look for extraction in standard output elseif ( (isset($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) && ($p_options[PCLZIP_OPT_EXTRACT_IN_OUTPUT])) { // ----- Extracting the file in standard output $v_result1 = $this->privExtractFileInOutput($v_header, $p_options); if ($v_result1 < 1) { $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result1; } // ----- Get the only interesting attributes if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Look for user callback abort if ($v_result1 == 2) { break; } } // ----- Look for normal extraction else { // ----- Extracting the file $v_result1 = $this->privExtractFile($v_header, $p_path, $p_remove_path, $p_remove_all_path, $p_options); if ($v_result1 < 1) { $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result1; } // ----- Get the only interesting attributes if (($v_result = $this->privConvertHeader2FileInfo($v_header, $p_file_list[$v_nb_extracted++])) != 1) { // ----- Close the zip file $this->privCloseFd(); $this->privSwapBackMagicQuotes(); return $v_result; } // ----- Look for user callback abort if ($v_result1 == 2) { break; } } } } // ----- Close the zip file $this->privCloseFd(); $this->privSwapBackMagicQuotes(); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractFile() // Description : // Parameters : // Return Values : // // 1 : ... ? // PCLZIP_ERR_USER_ABORTED(2) : User ask for extraction stop in callback // -------------------------------------------------------------------------------- function privExtractFile(&$p_entry, $p_path, $p_remove_path, $p_remove_all_path, &$p_options) { $v_result=1; // ----- Read the file header if (($v_result = $this->privReadFileHeader($v_header)) != 1) { // ----- Return return $v_result; } // ----- Check that the file header is coherent with $p_entry info if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { // TBC } // ----- Look for all path to remove if ($p_remove_all_path == true) { // ----- Look for folder entry that not need to be extracted if (($p_entry['external']&0x00000010)==0x00000010) { $p_entry['status'] = "filtered"; return $v_result; } // ----- Get the basename of the path $p_entry['filename'] = basename($p_entry['filename']); } // ----- Look for path to remove else if ($p_remove_path != "") { if (PclZipUtilPathInclusion($p_remove_path, $p_entry['filename']) == 2) { // ----- Change the file status $p_entry['status'] = "filtered"; // ----- Return return $v_result; } $p_remove_path_size = strlen($p_remove_path); if (substr($p_entry['filename'], 0, $p_remove_path_size) == $p_remove_path) { // ----- Remove the path $p_entry['filename'] = substr($p_entry['filename'], $p_remove_path_size); } } // ----- Add the path if ($p_path != '') { $p_entry['filename'] = $p_path."/".$p_entry['filename']; } // ----- Check a base_dir_restriction if (isset($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION])) { $v_inclusion = PclZipUtilPathInclusion($p_options[PCLZIP_OPT_EXTRACT_DIR_RESTRICTION], $p_entry['filename']); if ($v_inclusion == 0) { PclZip::privErrorLog(PCLZIP_ERR_DIRECTORY_RESTRICTION, "Filename '".$p_entry['filename']."' is " ."outside PCLZIP_OPT_EXTRACT_DIR_RESTRICTION"); return PclZip::errorCode(); } } // ----- Look for pre-extract callback if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); if ($v_result == 0) { // ----- Change the file status $p_entry['status'] = "skipped"; $v_result = 1; } // ----- Look for abort result if ($v_result == 2) { // ----- This status is internal and will be changed in 'skipped' $p_entry['status'] = "aborted"; $v_result = PCLZIP_ERR_USER_ABORTED; } // ----- Update the information // Only some fields can be modified $p_entry['filename'] = $v_local_header['filename']; } // ----- Look if extraction should be done if ($p_entry['status'] == 'ok') { // ----- Look for specific actions while the file exist if (file_exists($p_entry['filename'])) { // ----- Look if file is a directory if (is_dir($p_entry['filename'])) { // ----- Change the file status $p_entry['status'] = "already_a_directory"; // ----- Look for PCLZIP_OPT_STOP_ON_ERROR // For historical reason first PclZip implementation does not stop // when this kind of error occurs. if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { PclZip::privErrorLog(PCLZIP_ERR_ALREADY_A_DIRECTORY, "Filename '".$p_entry['filename']."' is " ."already used by an existing directory"); return PclZip::errorCode(); } } // ----- Look if file is write protected else if (!is_writeable($p_entry['filename'])) { // ----- Change the file status $p_entry['status'] = "write_protected"; // ----- Look for PCLZIP_OPT_STOP_ON_ERROR // For historical reason first PclZip implementation does not stop // when this kind of error occurs. if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, "Filename '".$p_entry['filename']."' exists " ."and is write protected"); return PclZip::errorCode(); } } // ----- Look if the extracted file is older else if (filemtime($p_entry['filename']) > $p_entry['mtime']) { // ----- Change the file status if ( (isset($p_options[PCLZIP_OPT_REPLACE_NEWER])) && ($p_options[PCLZIP_OPT_REPLACE_NEWER]===true)) { } else { $p_entry['status'] = "newer_exist"; // ----- Look for PCLZIP_OPT_STOP_ON_ERROR // For historical reason first PclZip implementation does not stop // when this kind of error occurs. if ( (isset($p_options[PCLZIP_OPT_STOP_ON_ERROR])) && ($p_options[PCLZIP_OPT_STOP_ON_ERROR]===true)) { PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, "Newer version of '".$p_entry['filename']."' exists " ."and option PCLZIP_OPT_REPLACE_NEWER is not selected"); return PclZip::errorCode(); } } } else { } } // ----- Check the directory availability and create it if necessary else { if ((($p_entry['external']&0x00000010)==0x00000010) || (substr($p_entry['filename'], -1) == '/')) $v_dir_to_check = $p_entry['filename']; else if (!strstr($p_entry['filename'], "/")) $v_dir_to_check = ""; else $v_dir_to_check = dirname($p_entry['filename']); if (($v_result = $this->privDirCheck($v_dir_to_check, (($p_entry['external']&0x00000010)==0x00000010))) != 1) { // ----- Change the file status $p_entry['status'] = "path_creation_fail"; // ----- Return //return $v_result; $v_result = 1; } } } // ----- Look if extraction should be done if ($p_entry['status'] == 'ok') { // ----- Do the extraction (if not a folder) if (!(($p_entry['external']&0x00000010)==0x00000010)) { // ----- Look for not compressed file if ($p_entry['compression'] == 0) { // ----- Opening destination file if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { // ----- Change the file status $p_entry['status'] = "write_error"; // ----- Return return $v_result; } // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks $v_size = $p_entry['compressed_size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($this->zip_fd, $v_read_size); /* Try to speed up the code $v_binary_data = pack('a'.$v_read_size, $v_buffer); @fwrite($v_dest_file, $v_binary_data, $v_read_size); */ @fwrite($v_dest_file, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Closing the destination file fclose($v_dest_file); // ----- Change the file mtime touch($p_entry['filename'], $p_entry['mtime']); } else { // ----- TBC // Need to be finished if (($p_entry['flag'] & 1) == 1) { PclZip::privErrorLog(PCLZIP_ERR_UNSUPPORTED_ENCRYPTION, 'File \''.$p_entry['filename'].'\' is encrypted. Encrypted files are not supported.'); return PclZip::errorCode(); } // ----- Look for using temporary file to unzip if ( (!isset($p_options[PCLZIP_OPT_TEMP_FILE_OFF])) && (isset($p_options[PCLZIP_OPT_TEMP_FILE_ON]) || (isset($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD]) && ($p_options[PCLZIP_OPT_TEMP_FILE_THRESHOLD] <= $p_entry['size'])) ) ) { $v_result = $this->privExtractFileUsingTempFile($p_entry, $p_options); if ($v_result < PCLZIP_ERR_NO_ERROR) { return $v_result; } } // ----- Look for extract in memory else { // ----- Read the compressed file in a buffer (one shot) if ($p_entry['compressed_size'] > 0) { $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); } else { $v_buffer = ''; } // ----- Decompress the file $v_file_content = @gzinflate($v_buffer); unset($v_buffer); if ($v_file_content === FALSE) { // ----- Change the file status // TBC $p_entry['status'] = "error"; return $v_result; } // ----- Opening destination file if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { // ----- Change the file status $p_entry['status'] = "write_error"; return $v_result; } // ----- Write the uncompressed data @fwrite($v_dest_file, $v_file_content, $p_entry['size']); unset($v_file_content); // ----- Closing the destination file @fclose($v_dest_file); } // ----- Change the file mtime @touch($p_entry['filename'], $p_entry['mtime']); } // ----- Look for chmod option if (isset($p_options[PCLZIP_OPT_SET_CHMOD])) { // ----- Change the mode of the file @chmod($p_entry['filename'], $p_options[PCLZIP_OPT_SET_CHMOD]); } } } // ----- Change abort status if ($p_entry['status'] == "aborted") { $p_entry['status'] = "skipped"; } // ----- Look for post-extract callback elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); // ----- Look for abort result if ($v_result == 2) { $v_result = PCLZIP_ERR_USER_ABORTED; } } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractFileUsingTempFile() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privExtractFileUsingTempFile(&$p_entry, &$p_options) { $v_result=1; // ----- Creates a temporary file $v_gzip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.gz'; if (($v_dest_file = @fopen($v_gzip_temp_name, "wb")) == 0) { fclose($v_file); PclZip::privErrorLog(PCLZIP_ERR_WRITE_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary write mode'); return PclZip::errorCode(); } // ----- Write gz file format header $v_binary_data = pack('va1a1Va1a1', 0x8b1f, Chr($p_entry['compression']), Chr(0x00), time(), Chr(0x00), Chr(3)); @fwrite($v_dest_file, $v_binary_data, 10); // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks $v_size = $p_entry['compressed_size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($this->zip_fd, $v_read_size); //$v_binary_data = pack('a'.$v_read_size, $v_buffer); @fwrite($v_dest_file, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Write gz file format footer $v_binary_data = pack('VV', $p_entry['crc'], $p_entry['size']); @fwrite($v_dest_file, $v_binary_data, 8); // ----- Close the temporary file @fclose($v_dest_file); // ----- Opening destination file if (($v_dest_file = @fopen($p_entry['filename'], 'wb')) == 0) { $p_entry['status'] = "write_error"; return $v_result; } // ----- Open the temporary gz file if (($v_src_file = @gzopen($v_gzip_temp_name, 'rb')) == 0) { @fclose($v_dest_file); $p_entry['status'] = "read_error"; PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_gzip_temp_name.'\' in binary read mode'); return PclZip::errorCode(); } // ----- Read the file by PCLZIP_READ_BLOCK_SIZE octets blocks $v_size = $p_entry['size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @gzread($v_src_file, $v_read_size); //$v_binary_data = pack('a'.$v_read_size, $v_buffer); @fwrite($v_dest_file, $v_buffer, $v_read_size); $v_size -= $v_read_size; } @fclose($v_dest_file); @gzclose($v_src_file); // ----- Delete the temporary file @unlink($v_gzip_temp_name); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractFileInOutput() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privExtractFileInOutput(&$p_entry, &$p_options) { $v_result=1; // ----- Read the file header if (($v_result = $this->privReadFileHeader($v_header)) != 1) { return $v_result; } // ----- Check that the file header is coherent with $p_entry info if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { // TBC } // ----- Look for pre-extract callback if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. // eval('$v_result = '.$p_options[PCLZIP_CB_PRE_EXTRACT].'(PCLZIP_CB_PRE_EXTRACT, $v_local_header);'); $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); if ($v_result == 0) { // ----- Change the file status $p_entry['status'] = "skipped"; $v_result = 1; } // ----- Look for abort result if ($v_result == 2) { // ----- This status is internal and will be changed in 'skipped' $p_entry['status'] = "aborted"; $v_result = PCLZIP_ERR_USER_ABORTED; } // ----- Update the information // Only some fields can be modified $p_entry['filename'] = $v_local_header['filename']; } // ----- Trace // ----- Look if extraction should be done if ($p_entry['status'] == 'ok') { // ----- Do the extraction (if not a folder) if (!(($p_entry['external']&0x00000010)==0x00000010)) { // ----- Look for not compressed file if ($p_entry['compressed_size'] == $p_entry['size']) { // ----- Read the file in a buffer (one shot) if ($p_entry['compressed_size'] > 0) { $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); } else { $v_buffer = ''; } // ----- Send the file to the output echo $v_buffer; unset($v_buffer); } else { // ----- Read the compressed file in a buffer (one shot) if ($p_entry['compressed_size'] > 0) { $v_buffer = @fread($this->zip_fd, $p_entry['compressed_size']); } else { $v_buffer = ''; } // ----- Decompress the file $v_file_content = gzinflate($v_buffer); unset($v_buffer); // ----- Send the file to the output echo $v_file_content; unset($v_file_content); } } } // ----- Change abort status if ($p_entry['status'] == "aborted") { $p_entry['status'] = "skipped"; } // ----- Look for post-extract callback elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); // ----- Look for abort result if ($v_result == 2) { $v_result = PCLZIP_ERR_USER_ABORTED; } } return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privExtractFileAsString() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privExtractFileAsString(&$p_entry, &$p_string, &$p_options) { $v_result=1; // ----- Read the file header $v_header = array(); if (($v_result = $this->privReadFileHeader($v_header)) != 1) { // ----- Return return $v_result; } // ----- Check that the file header is coherent with $p_entry info if ($this->privCheckFileHeaders($v_header, $p_entry) != 1) { // TBC } // ----- Look for pre-extract callback if (isset($p_options[PCLZIP_CB_PRE_EXTRACT])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. $v_result = $p_options[PCLZIP_CB_PRE_EXTRACT](PCLZIP_CB_PRE_EXTRACT, $v_local_header); if ($v_result == 0) { // ----- Change the file status $p_entry['status'] = "skipped"; $v_result = 1; } // ----- Look for abort result if ($v_result == 2) { // ----- This status is internal and will be changed in 'skipped' $p_entry['status'] = "aborted"; $v_result = PCLZIP_ERR_USER_ABORTED; } // ----- Update the information // Only some fields can be modified $p_entry['filename'] = $v_local_header['filename']; } // ----- Look if extraction should be done if ($p_entry['status'] == 'ok') { // ----- Do the extraction (if not a folder) if (!(($p_entry['external']&0x00000010)==0x00000010)) { // ----- Look for not compressed file // if ($p_entry['compressed_size'] == $p_entry['size']) if ($p_entry['compression'] == 0) { // ----- Reading the file if ($p_entry['compressed_size'] > 0) { $p_string = @fread($this->zip_fd, $p_entry['compressed_size']); } else { $p_string = ''; } } else { // ----- Reading the file if ($p_entry['compressed_size'] > 0) { $v_data = @fread($this->zip_fd, $p_entry['compressed_size']); } else { $v_data = ''; } // ----- Decompress the file if (($p_string = @gzinflate($v_data)) === FALSE) { // TBC } } // ----- Trace } else { // TBC : error : can not extract a folder in a string } } // ----- Change abort status if ($p_entry['status'] == "aborted") { $p_entry['status'] = "skipped"; } // ----- Look for post-extract callback elseif (isset($p_options[PCLZIP_CB_POST_EXTRACT])) { // ----- Generate a local information $v_local_header = array(); $this->privConvertHeader2FileInfo($p_entry, $v_local_header); // ----- Swap the content to header $v_local_header['content'] = $p_string; $p_string = ''; // ----- Call the callback // Here I do not use call_user_func() because I need to send a reference to the // header. $v_result = $p_options[PCLZIP_CB_POST_EXTRACT](PCLZIP_CB_POST_EXTRACT, $v_local_header); // ----- Swap back the content to header $p_string = $v_local_header['content']; unset($v_local_header['content']); // ----- Look for abort result if ($v_result == 2) { $v_result = PCLZIP_ERR_USER_ABORTED; } } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privReadFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privReadFileHeader(&$p_header) { $v_result=1; // ----- Read the 4 bytes signature $v_binary_data = @fread($this->zip_fd, 4); $v_data = unpack('Vid', $v_binary_data); // ----- Check signature if ($v_data['id'] != 0x04034b50) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); // ----- Return return PclZip::errorCode(); } // ----- Read the first 42 bytes of the header $v_binary_data = fread($this->zip_fd, 26); // ----- Look for invalid block size if (strlen($v_binary_data) != 26) { $p_header['filename'] = ""; $p_header['status'] = "invalid_header"; // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); // ----- Return return PclZip::errorCode(); } // ----- Extract the values $v_data = unpack('vversion/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len', $v_binary_data); // ----- Get filename $p_header['filename'] = fread($this->zip_fd, $v_data['filename_len']); // ----- Get extra_fields if ($v_data['extra_len'] != 0) { $p_header['extra'] = fread($this->zip_fd, $v_data['extra_len']); } else { $p_header['extra'] = ''; } // ----- Extract properties $p_header['version_extracted'] = $v_data['version']; $p_header['compression'] = $v_data['compression']; $p_header['size'] = $v_data['size']; $p_header['compressed_size'] = $v_data['compressed_size']; $p_header['crc'] = $v_data['crc']; $p_header['flag'] = $v_data['flag']; $p_header['filename_len'] = $v_data['filename_len']; // ----- Recuperate date in UNIX format $p_header['mdate'] = $v_data['mdate']; $p_header['mtime'] = $v_data['mtime']; if ($p_header['mdate'] && $p_header['mtime']) { // ----- Extract time $v_hour = ($p_header['mtime'] & 0xF800) >> 11; $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; $v_seconde = ($p_header['mtime'] & 0x001F)*2; // ----- Extract date $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; $v_month = ($p_header['mdate'] & 0x01E0) >> 5; $v_day = $p_header['mdate'] & 0x001F; // ----- Get UNIX date format $p_header['mtime'] = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); } else { $p_header['mtime'] = time(); } // TBC //for(reset($v_data); $key = key($v_data); next($v_data)) { //} // ----- Set the stored filename $p_header['stored_filename'] = $p_header['filename']; // ----- Set the status field $p_header['status'] = "ok"; // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privReadCentralFileHeader() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privReadCentralFileHeader(&$p_header) { $v_result=1; // ----- Read the 4 bytes signature $v_binary_data = @fread($this->zip_fd, 4); $v_data = unpack('Vid', $v_binary_data); // ----- Check signature if ($v_data['id'] != 0x02014b50) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Invalid archive structure'); // ----- Return return PclZip::errorCode(); } // ----- Read the first 42 bytes of the header $v_binary_data = fread($this->zip_fd, 42); // ----- Look for invalid block size if (strlen($v_binary_data) != 42) { $p_header['filename'] = ""; $p_header['status'] = "invalid_header"; // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid block size : ".strlen($v_binary_data)); // ----- Return return PclZip::errorCode(); } // ----- Extract the values $p_header = unpack('vversion/vversion_extracted/vflag/vcompression/vmtime/vmdate/Vcrc/Vcompressed_size/Vsize/vfilename_len/vextra_len/vcomment_len/vdisk/vinternal/Vexternal/Voffset', $v_binary_data); // ----- Get filename if ($p_header['filename_len'] != 0) $p_header['filename'] = fread($this->zip_fd, $p_header['filename_len']); else $p_header['filename'] = ''; // ----- Get extra if ($p_header['extra_len'] != 0) $p_header['extra'] = fread($this->zip_fd, $p_header['extra_len']); else $p_header['extra'] = ''; // ----- Get comment if ($p_header['comment_len'] != 0) $p_header['comment'] = fread($this->zip_fd, $p_header['comment_len']); else $p_header['comment'] = ''; // ----- Extract properties // ----- Recuperate date in UNIX format //if ($p_header['mdate'] && $p_header['mtime']) // TBC : bug : this was ignoring time with 0/0/0 if (1) { // ----- Extract time $v_hour = ($p_header['mtime'] & 0xF800) >> 11; $v_minute = ($p_header['mtime'] & 0x07E0) >> 5; $v_seconde = ($p_header['mtime'] & 0x001F)*2; // ----- Extract date $v_year = (($p_header['mdate'] & 0xFE00) >> 9) + 1980; $v_month = ($p_header['mdate'] & 0x01E0) >> 5; $v_day = $p_header['mdate'] & 0x001F; // ----- Get UNIX date format $p_header['mtime'] = @mktime($v_hour, $v_minute, $v_seconde, $v_month, $v_day, $v_year); } else { $p_header['mtime'] = time(); } // ----- Set the stored filename $p_header['stored_filename'] = $p_header['filename']; // ----- Set default status to ok $p_header['status'] = 'ok'; // ----- Look if it is a directory if (substr($p_header['filename'], -1) == '/') { //$p_header['external'] = 0x41FF0010; $p_header['external'] = 0x00000010; } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privCheckFileHeaders() // Description : // Parameters : // Return Values : // 1 on success, // 0 on error; // -------------------------------------------------------------------------------- function privCheckFileHeaders(&$p_local_header, &$p_central_header) { $v_result=1; // ----- Check the static values // TBC if ($p_local_header['filename'] != $p_central_header['filename']) { } if ($p_local_header['version_extracted'] != $p_central_header['version_extracted']) { } if ($p_local_header['flag'] != $p_central_header['flag']) { } if ($p_local_header['compression'] != $p_central_header['compression']) { } if ($p_local_header['mtime'] != $p_central_header['mtime']) { } if ($p_local_header['filename_len'] != $p_central_header['filename_len']) { } // ----- Look for flag bit 3 if (($p_local_header['flag'] & 8) == 8) { $p_local_header['size'] = $p_central_header['size']; $p_local_header['compressed_size'] = $p_central_header['compressed_size']; $p_local_header['crc'] = $p_central_header['crc']; } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privReadEndCentralDir() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privReadEndCentralDir(&$p_central_dir) { $v_result=1; // ----- Go to the end of the zip file $v_size = filesize($this->zipname); @fseek($this->zip_fd, $v_size); if (@ftell($this->zip_fd) != $v_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to go to the end of the archive \''.$this->zipname.'\''); // ----- Return return PclZip::errorCode(); } // ----- First try : look if this is an archive with no commentaries (most of the time) // in this case the end of central dir is at 22 bytes of the file end $v_found = 0; if ($v_size > 26) { @fseek($this->zip_fd, $v_size-22); if (($v_pos = @ftell($this->zip_fd)) != ($v_size-22)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); // ----- Return return PclZip::errorCode(); } // ----- Read for bytes $v_binary_data = @fread($this->zip_fd, 4); $v_data = @unpack('Vid', $v_binary_data); // ----- Check signature if ($v_data['id'] == 0x06054b50) { $v_found = 1; } $v_pos = ftell($this->zip_fd); } // ----- Go back to the maximum possible size of the Central Dir End Record if (!$v_found) { $v_maximum_size = 65557; // 0xFFFF + 22; if ($v_maximum_size > $v_size) $v_maximum_size = $v_size; @fseek($this->zip_fd, $v_size-$v_maximum_size); if (@ftell($this->zip_fd) != ($v_size-$v_maximum_size)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'Unable to seek back to the middle of the archive \''.$this->zipname.'\''); // ----- Return return PclZip::errorCode(); } // ----- Read byte per byte in order to find the signature $v_pos = ftell($this->zip_fd); $v_bytes = 0x00000000; while ($v_pos < $v_size) { // ----- Read a byte $v_byte = @fread($this->zip_fd, 1); // ----- Add the byte //$v_bytes = ($v_bytes << 8) | Ord($v_byte); // Note we mask the old value down such that once shifted we can never end up with more than a 32bit number // Otherwise on systems where we have 64bit integers the check below for the magic number will fail. $v_bytes = ( ($v_bytes & 0xFFFFFF) << 8) | Ord($v_byte); // ----- Compare the bytes if ($v_bytes == 0x504b0506) { $v_pos++; break; } $v_pos++; } // ----- Look if not found end of central dir if ($v_pos == $v_size) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Unable to find End of Central Dir Record signature"); // ----- Return return PclZip::errorCode(); } } // ----- Read the first 18 bytes of the header $v_binary_data = fread($this->zip_fd, 18); // ----- Look for invalid block size if (strlen($v_binary_data) != 18) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, "Invalid End of Central Dir Record size : ".strlen($v_binary_data)); // ----- Return return PclZip::errorCode(); } // ----- Extract the values $v_data = unpack('vdisk/vdisk_start/vdisk_entries/ventries/Vsize/Voffset/vcomment_size', $v_binary_data); // ----- Check the global size if (($v_pos + $v_data['comment_size'] + 18) != $v_size) { // ----- Removed in release 2.2 see readme file // The check of the file size is a little too strict. // Some bugs where found when a zip is encrypted/decrypted with 'crypt'. // While decrypted, zip has training 0 bytes if (0) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_BAD_FORMAT, 'The central dir is not at the end of the archive.' .' Some trailing bytes exists after the archive.'); // ----- Return return PclZip::errorCode(); } } // ----- Get comment if ($v_data['comment_size'] != 0) { $p_central_dir['comment'] = fread($this->zip_fd, $v_data['comment_size']); } else $p_central_dir['comment'] = ''; $p_central_dir['entries'] = $v_data['entries']; $p_central_dir['disk_entries'] = $v_data['disk_entries']; $p_central_dir['offset'] = $v_data['offset']; $p_central_dir['size'] = $v_data['size']; $p_central_dir['disk'] = $v_data['disk']; $p_central_dir['disk_start'] = $v_data['disk_start']; // TBC //for(reset($p_central_dir); $key = key($p_central_dir); next($p_central_dir)) { //} // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privDeleteByRule() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privDeleteByRule(&$p_result_list, &$p_options) { $v_result=1; $v_list_detail = array(); // ----- Open the zip file if (($v_result=$this->privOpenFd('rb')) != 1) { // ----- Return return $v_result; } // ----- Read the central directory information $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privCloseFd(); return $v_result; } // ----- Go to beginning of File @rewind($this->zip_fd); // ----- Scan all the files // ----- Start at beginning of Central Dir $v_pos_entry = $v_central_dir['offset']; @rewind($this->zip_fd); if (@fseek($this->zip_fd, $v_pos_entry)) { // ----- Close the zip file $this->privCloseFd(); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return return PclZip::errorCode(); } // ----- Read each entry $v_header_list = array(); $j_start = 0; for ($i=0, $v_nb_extracted=0; $i<$v_central_dir['entries']; $i++) { // ----- Read the file header $v_header_list[$v_nb_extracted] = array(); if (($v_result = $this->privReadCentralFileHeader($v_header_list[$v_nb_extracted])) != 1) { // ----- Close the zip file $this->privCloseFd(); return $v_result; } // ----- Store the index $v_header_list[$v_nb_extracted]['index'] = $i; // ----- Look for the specific extract rules $v_found = false; // ----- Look for extract by name rule if ( (isset($p_options[PCLZIP_OPT_BY_NAME])) && ($p_options[PCLZIP_OPT_BY_NAME] != 0)) { // ----- Look if the filename is in the list for ($j=0; ($j<sizeof($p_options[PCLZIP_OPT_BY_NAME])) && (!$v_found); $j++) { // ----- Look for a directory if (substr($p_options[PCLZIP_OPT_BY_NAME][$j], -1) == "/") { // ----- Look if the directory is in the filename path if ( (strlen($v_header_list[$v_nb_extracted]['stored_filename']) > strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) && (substr($v_header_list[$v_nb_extracted]['stored_filename'], 0, strlen($p_options[PCLZIP_OPT_BY_NAME][$j])) == $p_options[PCLZIP_OPT_BY_NAME][$j])) { $v_found = true; } elseif ( (($v_header_list[$v_nb_extracted]['external']&0x00000010)==0x00000010) /* Indicates a folder */ && ($v_header_list[$v_nb_extracted]['stored_filename'].'/' == $p_options[PCLZIP_OPT_BY_NAME][$j])) { $v_found = true; } } // ----- Look for a filename elseif ($v_header_list[$v_nb_extracted]['stored_filename'] == $p_options[PCLZIP_OPT_BY_NAME][$j]) { $v_found = true; } } } // ----- Look for extract by ereg rule // ereg() is deprecated with PHP 5.3 /* else if ( (isset($p_options[PCLZIP_OPT_BY_EREG])) && ($p_options[PCLZIP_OPT_BY_EREG] != "")) { if (ereg($p_options[PCLZIP_OPT_BY_EREG], $v_header_list[$v_nb_extracted]['stored_filename'])) { $v_found = true; } } */ // ----- Look for extract by preg rule else if ( (isset($p_options[PCLZIP_OPT_BY_PREG])) && ($p_options[PCLZIP_OPT_BY_PREG] != "")) { if (preg_match($p_options[PCLZIP_OPT_BY_PREG], $v_header_list[$v_nb_extracted]['stored_filename'])) { $v_found = true; } } // ----- Look for extract by index rule else if ( (isset($p_options[PCLZIP_OPT_BY_INDEX])) && ($p_options[PCLZIP_OPT_BY_INDEX] != 0)) { // ----- Look if the index is in the list for ($j=$j_start; ($j<sizeof($p_options[PCLZIP_OPT_BY_INDEX])) && (!$v_found); $j++) { if (($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['start']) && ($i<=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end'])) { $v_found = true; } if ($i>=$p_options[PCLZIP_OPT_BY_INDEX][$j]['end']) { $j_start = $j+1; } if ($p_options[PCLZIP_OPT_BY_INDEX][$j]['start']>$i) { break; } } } else { $v_found = true; } // ----- Look for deletion if ($v_found) { unset($v_header_list[$v_nb_extracted]); } else { $v_nb_extracted++; } } // ----- Look if something need to be deleted if ($v_nb_extracted > 0) { // ----- Creates a temporary file $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; // ----- Creates a temporary zip archive $v_temp_zip = new PclZip($v_zip_temp_name); // ----- Open the temporary zip file in write mode if (($v_result = $v_temp_zip->privOpenFd('wb')) != 1) { $this->privCloseFd(); // ----- Return return $v_result; } // ----- Look which file need to be kept for ($i=0; $i<sizeof($v_header_list); $i++) { // ----- Calculate the position of the header @rewind($this->zip_fd); if (@fseek($this->zip_fd, $v_header_list[$i]['offset'])) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_INVALID_ARCHIVE_ZIP, 'Invalid archive size'); // ----- Return return PclZip::errorCode(); } // ----- Read the file header $v_local_header = array(); if (($v_result = $this->privReadFileHeader($v_local_header)) != 1) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return return $v_result; } // ----- Check that local file header is same as central file header if ($this->privCheckFileHeaders($v_local_header, $v_header_list[$i]) != 1) { // TBC } unset($v_local_header); // ----- Write the file header if (($v_result = $v_temp_zip->privWriteFileHeader($v_header_list[$i])) != 1) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return return $v_result; } // ----- Read/write the data block if (($v_result = PclZipUtilCopyBlock($this->zip_fd, $v_temp_zip->zip_fd, $v_header_list[$i]['compressed_size'])) != 1) { // ----- Close the zip file $this->privCloseFd(); $v_temp_zip->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return return $v_result; } } // ----- Store the offset of the central dir $v_offset = @ftell($v_temp_zip->zip_fd); // ----- Re-Create the Central Dir files header for ($i=0; $i<sizeof($v_header_list); $i++) { // ----- Create the file header if (($v_result = $v_temp_zip->privWriteCentralFileHeader($v_header_list[$i])) != 1) { $v_temp_zip->privCloseFd(); $this->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return return $v_result; } // ----- Transform the header to a 'usable' info $v_temp_zip->privConvertHeader2FileInfo($v_header_list[$i], $p_result_list[$i]); } // ----- Zip file comment $v_comment = ''; if (isset($p_options[PCLZIP_OPT_COMMENT])) { $v_comment = $p_options[PCLZIP_OPT_COMMENT]; } // ----- Calculate the size of the central header $v_size = @ftell($v_temp_zip->zip_fd)-$v_offset; // ----- Create the central dir footer if (($v_result = $v_temp_zip->privWriteCentralHeader(sizeof($v_header_list), $v_size, $v_offset, $v_comment)) != 1) { // ----- Reset the file list unset($v_header_list); $v_temp_zip->privCloseFd(); $this->privCloseFd(); @unlink($v_zip_temp_name); // ----- Return return $v_result; } // ----- Close $v_temp_zip->privCloseFd(); $this->privCloseFd(); // ----- Delete the zip file // TBC : I should test the result ... @unlink($this->zipname); // ----- Rename the temporary file // TBC : I should test the result ... //@rename($v_zip_temp_name, $this->zipname); PclZipUtilRename($v_zip_temp_name, $this->zipname); // ----- Destroy the temporary archive unset($v_temp_zip); } // ----- Remove every files : reset the file else if ($v_central_dir['entries'] != 0) { $this->privCloseFd(); if (($v_result = $this->privOpenFd('wb')) != 1) { return $v_result; } if (($v_result = $this->privWriteCentralHeader(0, 0, 0, '')) != 1) { return $v_result; } $this->privCloseFd(); } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privDirCheck() // Description : // Check if a directory exists, if not it creates it and all the parents directory // which may be useful. // Parameters : // $p_dir : Directory path to check. // Return Values : // 1 : OK // -1 : Unable to create directory // -------------------------------------------------------------------------------- function privDirCheck($p_dir, $p_is_dir=false) { $v_result = 1; // ----- Remove the final '/' if (($p_is_dir) && (substr($p_dir, -1)=='/')) { $p_dir = substr($p_dir, 0, strlen($p_dir)-1); } // ----- Check the directory availability if ((is_dir($p_dir)) || ($p_dir == "")) { return 1; } // ----- Extract parent directory $p_parent_dir = dirname($p_dir); // ----- Just a check if ($p_parent_dir != $p_dir) { // ----- Look for parent directory if ($p_parent_dir != "") { if (($v_result = $this->privDirCheck($p_parent_dir)) != 1) { return $v_result; } } } // ----- Create the directory if (!@mkdir($p_dir, 0777)) { // ----- Error log PclZip::privErrorLog(PCLZIP_ERR_DIR_CREATE_FAIL, "Unable to create directory '$p_dir'"); // ----- Return return PclZip::errorCode(); } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privMerge() // Description : // If $p_archive_to_add does not exist, the function exit with a success result. // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privMerge(&$p_archive_to_add) { $v_result=1; // ----- Look if the archive_to_add exists if (!is_file($p_archive_to_add->zipname)) { // ----- Nothing to merge, so merge is a success $v_result = 1; // ----- Return return $v_result; } // ----- Look if the archive exists if (!is_file($this->zipname)) { // ----- Do a duplicate $v_result = $this->privDuplicate($p_archive_to_add->zipname); // ----- Return return $v_result; } // ----- Open the zip file if (($v_result=$this->privOpenFd('rb')) != 1) { // ----- Return return $v_result; } // ----- Read the central directory information $v_central_dir = array(); if (($v_result = $this->privReadEndCentralDir($v_central_dir)) != 1) { $this->privCloseFd(); return $v_result; } // ----- Go to beginning of File @rewind($this->zip_fd); // ----- Open the archive_to_add file if (($v_result=$p_archive_to_add->privOpenFd('rb')) != 1) { $this->privCloseFd(); // ----- Return return $v_result; } // ----- Read the central directory information $v_central_dir_to_add = array(); if (($v_result = $p_archive_to_add->privReadEndCentralDir($v_central_dir_to_add)) != 1) { $this->privCloseFd(); $p_archive_to_add->privCloseFd(); return $v_result; } // ----- Go to beginning of File @rewind($p_archive_to_add->zip_fd); // ----- Creates a temporary file $v_zip_temp_name = PCLZIP_TEMPORARY_DIR.uniqid('pclzip-').'.tmp'; // ----- Open the temporary file in write mode if (($v_zip_temp_fd = @fopen($v_zip_temp_name, 'wb')) == 0) { $this->privCloseFd(); $p_archive_to_add->privCloseFd(); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open temporary file \''.$v_zip_temp_name.'\' in binary write mode'); // ----- Return return PclZip::errorCode(); } // ----- Copy the files from the archive to the temporary file // TBC : Here I should better append the file and go back to erase the central dir $v_size = $v_central_dir['offset']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = fread($this->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Copy the files from the archive_to_add into the temporary file $v_size = $v_central_dir_to_add['offset']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = fread($p_archive_to_add->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Store the offset of the central dir $v_offset = @ftell($v_zip_temp_fd); // ----- Copy the block of file headers from the old archive $v_size = $v_central_dir['size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($this->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Copy the block of file headers from the archive_to_add $v_size = $v_central_dir_to_add['size']; while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($p_archive_to_add->zip_fd, $v_read_size); @fwrite($v_zip_temp_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Merge the file comments $v_comment = $v_central_dir['comment'].' '.$v_central_dir_to_add['comment']; // ----- Calculate the size of the (new) central header $v_size = @ftell($v_zip_temp_fd)-$v_offset; // ----- Swap the file descriptor // Here is a trick : I swap the temporary fd with the zip fd, in order to use // the following methods on the temporary fil and not the real archive fd $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Create the central dir footer if (($v_result = $this->privWriteCentralHeader($v_central_dir['entries']+$v_central_dir_to_add['entries'], $v_size, $v_offset, $v_comment)) != 1) { $this->privCloseFd(); $p_archive_to_add->privCloseFd(); @fclose($v_zip_temp_fd); $this->zip_fd = null; // ----- Reset the file list unset($v_header_list); // ----- Return return $v_result; } // ----- Swap back the file descriptor $v_swap = $this->zip_fd; $this->zip_fd = $v_zip_temp_fd; $v_zip_temp_fd = $v_swap; // ----- Close $this->privCloseFd(); $p_archive_to_add->privCloseFd(); // ----- Close the temporary file @fclose($v_zip_temp_fd); // ----- Delete the zip file // TBC : I should test the result ... @unlink($this->zipname); // ----- Rename the temporary file // TBC : I should test the result ... //@rename($v_zip_temp_name, $this->zipname); PclZipUtilRename($v_zip_temp_name, $this->zipname); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privDuplicate() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privDuplicate($p_archive_filename) { $v_result=1; // ----- Look if the $p_archive_filename exists if (!is_file($p_archive_filename)) { // ----- Nothing to duplicate, so duplicate is a success. $v_result = 1; // ----- Return return $v_result; } // ----- Open the zip file if (($v_result=$this->privOpenFd('wb')) != 1) { // ----- Return return $v_result; } // ----- Open the temporary file in write mode if (($v_zip_temp_fd = @fopen($p_archive_filename, 'rb')) == 0) { $this->privCloseFd(); PclZip::privErrorLog(PCLZIP_ERR_READ_OPEN_FAIL, 'Unable to open archive file \''.$p_archive_filename.'\' in binary write mode'); // ----- Return return PclZip::errorCode(); } // ----- Copy the files from the archive to the temporary file // TBC : Here I should better append the file and go back to erase the central dir $v_size = filesize($p_archive_filename); while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = fread($v_zip_temp_fd, $v_read_size); @fwrite($this->zip_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } // ----- Close $this->privCloseFd(); // ----- Close the temporary file @fclose($v_zip_temp_fd); // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privErrorLog() // Description : // Parameters : // -------------------------------------------------------------------------------- function privErrorLog($p_error_code=0, $p_error_string='') { if (PCLZIP_ERROR_EXTERNAL == 1) { PclError($p_error_code, $p_error_string); } else { $this->error_code = $p_error_code; $this->error_string = $p_error_string; } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privErrorReset() // Description : // Parameters : // -------------------------------------------------------------------------------- function privErrorReset() { if (PCLZIP_ERROR_EXTERNAL == 1) { PclErrorReset(); } else { $this->error_code = 0; $this->error_string = ''; } } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privDisableMagicQuotes() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privDisableMagicQuotes() { $v_result=1; // EDIT for WordPress 5.3.0 // magic_quote functions are deprecated in PHP 7.4, now assuming it's always off. /* // ----- Look if function exists if ( (!function_exists("get_magic_quotes_runtime")) || (!function_exists("set_magic_quotes_runtime"))) { return $v_result; } // ----- Look if already done if ($this->magic_quotes_status != -1) { return $v_result; } // ----- Get and memorize the magic_quote value $this->magic_quotes_status = @get_magic_quotes_runtime(); // ----- Disable magic_quotes if ($this->magic_quotes_status == 1) { @set_magic_quotes_runtime(0); } */ // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : privSwapBackMagicQuotes() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function privSwapBackMagicQuotes() { $v_result=1; // EDIT for WordPress 5.3.0 // magic_quote functions are deprecated in PHP 7.4, now assuming it's always off. /* // ----- Look if function exists if ( (!function_exists("get_magic_quotes_runtime")) || (!function_exists("set_magic_quotes_runtime"))) { return $v_result; } // ----- Look if something to do if ($this->magic_quotes_status != -1) { return $v_result; } // ----- Swap back magic_quotes if ($this->magic_quotes_status == 1) { @set_magic_quotes_runtime($this->magic_quotes_status); } */ // ----- Return return $v_result; } // -------------------------------------------------------------------------------- } // End of class // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilPathReduction() // Description : // Parameters : // Return Values : // -------------------------------------------------------------------------------- function PclZipUtilPathReduction($p_dir) { $v_result = ""; // ----- Look for not empty path if ($p_dir != "") { // ----- Explode path by directory names $v_list = explode("/", $p_dir); // ----- Study directories from last to first $v_skip = 0; for ($i=sizeof($v_list)-1; $i>=0; $i--) { // ----- Look for current path if ($v_list[$i] == ".") { // ----- Ignore this directory // Should be the first $i=0, but no check is done } else if ($v_list[$i] == "..") { $v_skip++; } else if ($v_list[$i] == "") { // ----- First '/' i.e. root slash if ($i == 0) { $v_result = "/".$v_result; if ($v_skip > 0) { // ----- It is an invalid path, so the path is not modified // TBC $v_result = $p_dir; $v_skip = 0; } } // ----- Last '/' i.e. indicates a directory else if ($i == (sizeof($v_list)-1)) { $v_result = $v_list[$i]; } // ----- Double '/' inside the path else { // ----- Ignore only the double '//' in path, // but not the first and last '/' } } else { // ----- Look for item to skip if ($v_skip > 0) { $v_skip--; } else { $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?"/".$v_result:""); } } } // ----- Look for skip if ($v_skip > 0) { while ($v_skip > 0) { $v_result = '../'.$v_result; $v_skip--; } } } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilPathInclusion() // Description : // This function indicates if the path $p_path is under the $p_dir tree. Or, // said in an other way, if the file or sub-dir $p_path is inside the dir // $p_dir. // The function indicates also if the path is exactly the same as the dir. // This function supports path with duplicated '/' like '//', but does not // support '.' or '..' statements. // Parameters : // Return Values : // 0 if $p_path is not inside directory $p_dir // 1 if $p_path is inside directory $p_dir // 2 if $p_path is exactly the same as $p_dir // -------------------------------------------------------------------------------- function PclZipUtilPathInclusion($p_dir, $p_path) { $v_result = 1; // ----- Look for path beginning by ./ if ( ($p_dir == '.') || ((strlen($p_dir) >=2) && (substr($p_dir, 0, 2) == './'))) { $p_dir = PclZipUtilTranslateWinPath(getcwd(), FALSE).'/'.substr($p_dir, 1); } if ( ($p_path == '.') || ((strlen($p_path) >=2) && (substr($p_path, 0, 2) == './'))) { $p_path = PclZipUtilTranslateWinPath(getcwd(), FALSE).'/'.substr($p_path, 1); } // ----- Explode dir and path by directory separator $v_list_dir = explode("/", $p_dir); $v_list_dir_size = sizeof($v_list_dir); $v_list_path = explode("/", $p_path); $v_list_path_size = sizeof($v_list_path); // ----- Study directories paths $i = 0; $j = 0; while (($i < $v_list_dir_size) && ($j < $v_list_path_size) && ($v_result)) { // ----- Look for empty dir (path reduction) if ($v_list_dir[$i] == '') { $i++; continue; } if ($v_list_path[$j] == '') { $j++; continue; } // ----- Compare the items if (($v_list_dir[$i] != $v_list_path[$j]) && ($v_list_dir[$i] != '') && ( $v_list_path[$j] != '')) { $v_result = 0; } // ----- Next items $i++; $j++; } // ----- Look if everything seems to be the same if ($v_result) { // ----- Skip all the empty items while (($j < $v_list_path_size) && ($v_list_path[$j] == '')) $j++; while (($i < $v_list_dir_size) && ($v_list_dir[$i] == '')) $i++; if (($i >= $v_list_dir_size) && ($j >= $v_list_path_size)) { // ----- There are exactly the same $v_result = 2; } else if ($i < $v_list_dir_size) { // ----- The path is shorter than the dir $v_result = 0; } } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilCopyBlock() // Description : // Parameters : // $p_mode : read/write compression mode // 0 : src & dest normal // 1 : src gzip, dest normal // 2 : src normal, dest gzip // 3 : src & dest gzip // Return Values : // -------------------------------------------------------------------------------- function PclZipUtilCopyBlock($p_src, $p_dest, $p_size, $p_mode=0) { $v_result = 1; if ($p_mode==0) { while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($p_src, $v_read_size); @fwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } } else if ($p_mode==1) { while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @gzread($p_src, $v_read_size); @fwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } } else if ($p_mode==2) { while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($p_src, $v_read_size); @gzwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } } else if ($p_mode==3) { while ($p_size != 0) { $v_read_size = ($p_size < PCLZIP_READ_BLOCK_SIZE ? $p_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @gzread($p_src, $v_read_size); @gzwrite($p_dest, $v_buffer, $v_read_size); $p_size -= $v_read_size; } } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilRename() // Description : // This function tries to do a simple rename() function. If it fails, it // tries to copy the $p_src file in a new $p_dest file and then unlink the // first one. // Parameters : // $p_src : Old filename // $p_dest : New filename // Return Values : // 1 on success, 0 on failure. // -------------------------------------------------------------------------------- function PclZipUtilRename($p_src, $p_dest) { $v_result = 1; // ----- Try to rename the files if (!@rename($p_src, $p_dest)) { // ----- Try to copy & unlink the src if (!@copy($p_src, $p_dest)) { $v_result = 0; } else if (!@unlink($p_src)) { $v_result = 0; } } // ----- Return return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilOptionText() // Description : // Translate option value in text. Mainly for debug purpose. // Parameters : // $p_option : the option value. // Return Values : // The option text value. // -------------------------------------------------------------------------------- function PclZipUtilOptionText($p_option) { $v_list = get_defined_constants(); for (reset($v_list); $v_key = key($v_list); next($v_list)) { $v_prefix = substr($v_key, 0, 10); if (( ($v_prefix == 'PCLZIP_OPT') || ($v_prefix == 'PCLZIP_CB_') || ($v_prefix == 'PCLZIP_ATT')) && ($v_list[$v_key] == $p_option)) { return $v_key; } } $v_result = 'Unknown'; return $v_result; } // -------------------------------------------------------------------------------- // -------------------------------------------------------------------------------- // Function : PclZipUtilTranslateWinPath() // Description : // Translate windows path by replacing '\' by '/' and optionally removing // drive letter. // Parameters : // $p_path : path to translate. // $p_remove_disk_letter : true | false // Return Values : // The path translated. // -------------------------------------------------------------------------------- function PclZipUtilTranslateWinPath($p_path, $p_remove_disk_letter=true) { if (PHP_OS_FAMILY == 'Windows') { // ----- Look for potential disk letter if (($p_remove_disk_letter) && (($v_position = strpos($p_path, ':')) != false)) { $p_path = substr($p_path, $v_position+1); } // ----- Change potential windows directory separator if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) { $p_path = strtr($p_path, '\\', '/'); } } return $p_path; } // -------------------------------------------------------------------------------- ?>
[+]
..
[-] autoscan.tar
[edit]
[-] latest-posts.php.php.tar.gz
[edit]
[-] l10n.tar.gz
[edit]
[-] quicktags.js.tar
[edit]
[-] latest-posts.tar
[edit]
[-] media.js.js.tar.gz
[edit]
[-] a9dfba4974c6d64c.tar
[edit]
[-] 3540c33663bf5e3c86e485cae09de0d9a8a21a.tar
[edit]
[-] embed.php.tar
[edit]
[-] version.tar
[edit]
[-] accordion-panel.tar
[edit]
[-] b.zip
[edit]
[-] blocks.zip
[edit]
[-] 962918dd5cdc3580.tar
[edit]
[-] upload.php.php.tar.gz
[edit]
[-] 1e98089cadef4b64.tar.gz
[edit]
[-] library.tar.gz
[edit]
[-] class-phpmailer.php.tar
[edit]
[-] fileindex.php.tar
[edit]
[-] 377b8ddb874d09c7.tar
[edit]
[-] masonry.min.js.tar
[edit]
[-] class-phpass.php.tar
[edit]
[-] autoscan.tar.gz
[edit]
[-] autoconf.tar.gz
[edit]
[-] 462333483c8a98bc6c303929e22225dc93a9e2.tar
[edit]
[-] .gayan@ediuae_com.zip
[edit]
[-] social@ediuae.com.tar.gz
[edit]
[-] twig.zip
[edit]
[-] endpoints.tar.gz
[edit]
[-] 599792.tar.gz
[edit]
[-] functions.wp-scripts.php.wp-scripts.php.tar.gz
[edit]
[-] media-views-rtl.css.tar
[edit]
[-] xb89c12.tar.gz
[edit]
[-] compat.php.php.tar.gz
[edit]
[-] date-button.gif.gif.tar.gz
[edit]
[-] SimplePie.tar.gz
[edit]
[-] colorpicker.tar
[edit]
[-] class-IXR-request.php.php.tar.gz
[edit]
[-] class-wp-rest-request.php.tar
[edit]
[-] hugetlb_shm_group.tar
[edit]
[-] wp-lists.min.js.tar
[edit]
[-] tmp.tar
[edit]
[-] class-wp-upgrader-skin.php.php.tar.gz
[edit]
[-] dovecot-uidvalidity.69a2ba17.tar
[edit]
[-] wp-custom-header.min.js.tar
[edit]
[-] 9db40599417da046f7e02ab3d4bd96146d5d18.tar
[edit]
[-] 6c4bbe74cf2f9d5bbeaf0d7ae5033456b704ef.tar
[edit]
[-] rss.php.php.tar.gz
[edit]
[-] firefly.tar
[edit]
[-] shortcode.min.js.min.js.tar.gz
[edit]
[-] nav-menu.min.js.tar
[edit]
[-] debug.tar.gz
[edit]
[-] a4c8ecf62e24c1f17bc927beb32215a1d26dd1.tar.gz
[edit]
[-] icons32-vs.png.tar
[edit]
[-] wp-embed.min.js.tar
[edit]
[-] 1e0545be341924db.tar
[edit]
[-] agrivaingredients.com.zip
[edit]
[-] nvdata.tar
[edit]
[-] class-wp-widget-factory.php.php.tar.gz
[edit]
[-] 6ee34e8d7b10222547c9160afe132e1d022c42.tar.gz
[edit]
[-] style-engine.php.tar
[edit]
[-] Parse.tar
[edit]
[-] custom-background.php.php.tar.gz
[edit]
[-] storage.sqlite.tar
[edit]
[-] 8c6cda8d6d9614b8.tar.gz
[edit]
[-] Jcrop.gif.tar
[edit]
[-] wp-pointer.min.css.min.css.tar.gz
[edit]
[-] ediuae.com.tar
[edit]
[-] src.tar.gz
[edit]
[-] 4.tar
[edit]
[-] fec5ce16069bf1a4af0eaf90995a8c09c7d55a.tar.gz
[edit]
[-] resize-2x.gif.gif.tar.gz
[edit]
[-] vcards.zip
[edit]
[-] charmap.tar.gz
[edit]
[-] geode-linux.tar.gz
[edit]
[-] 7db559aa3e41ebb8c0b8d010958cdfe5a383fd.tar.gz
[edit]
[-] vertice.tar
[edit]
[-] theme-i18n.json.json.tar.gz
[edit]
[-] dovecot-uidlist.tar
[edit]
[-] class-wp-network.php.tar
[edit]
[-] file.tar.gz
[edit]
[-] style-engine.tar.gz
[edit]
[-] 22f231cefc518e4abab0fd3f0dc1362934f763.tar.gz
[edit]
[-] errors.log.tar
[edit]
[-] 28a87a0955416c45.tar
[edit]
[-] wp-config.php.php.tar.gz
[edit]
[-] wp-embed.js.tar
[edit]
[-] editor.js.tar
[edit]
[-] ms-settings.php.php.tar.gz
[edit]
[-] class-avif-info.php.tar
[edit]
[-] libstdbuf.so.tar
[edit]
[-] eliteroyalcrown.com.tar
[edit]
[-] 1ed1e4df7620d2bf.tar.gz
[edit]
[-] user.php.tar
[edit]
[-] 55f540c7a7a085a0774285b64a4d3c3600d5c5.tar
[edit]
[-] query-total.zip
[edit]
[-] car.txt.txt.tar.gz
[edit]
[-] 9005e106117153972e3c79f8e8ec7ce9ab8736.tar.gz
[edit]
[-] edit-form-blocks.php.tar
[edit]
[-] b4d7b_d3a69_87b7190954ee6c370270407b46101613.key.tar
[edit]
[-] server.c302.cloudmark.com.conf.tar
[edit]
[-] contribute.php.php.tar.gz
[edit]
[-] block-patterns.tar
[edit]
[-] generic.png.tar
[edit]
[-] gallery.tar
[edit]
[-] pullquote.tar.gz
[edit]
[-] user_prefs.tar
[edit]
[-] toggige-arrow.jpg.tar
[edit]
[-] class-wp-embed.php.tar
[edit]
[-] customize-nav-menus.min.css.min.css.tar.gz
[edit]
[-] fc22c552e47c6bcd8a2a42dcbd7460691e8382.tar.gz
[edit]
[-] f.tar.gz
[edit]
[-] class-wp-matchesmapregex.php.php.tar.gz
[edit]
[-] _usr_local_cpanel_cpanel_-F.tar
[edit]
[-] browser.png.png.tar.gz
[edit]
[-] site-logo.zip
[edit]
[-] .bashrc.bashrc.tar.gz
[edit]
[-] 2e794be98464c084.tar.gz
[edit]
[-] text-columns.tar.gz
[edit]
[-] ms-deprecated.php.tar
[edit]
[-] wp-blog-header.php.tar
[edit]
[-] ms-admin-filters.php.tar
[edit]
[-] post-date.php.php.tar.gz
[edit]
[-] 1eb2afc47b6131a5.tar
[edit]
[-] admin-bar-rtl.min.css.min.css.tar.gz
[edit]
[-] deprecated.php.php.tar.gz
[edit]
[-] wp-blog-header.php.php.tar.gz
[edit]
[-] gimanthi@ediuae.com.zip
[edit]
[-] 7f0eb8982d5a84593845a10fb3cb7fc81f4ee0.tar.gz
[edit]
[-] Utility.tar
[edit]
[-] 2026.tar.gz
[edit]
[-] wp-trackback.php.php.tar.gz
[edit]
[-] class-wp-image-editor.php.tar
[edit]
[-] hr@ediuae.com.tar
[edit]
[-] class-wp-comment-query.php.tar
[edit]
[-] ff46a268e6e5d545e3e009db7e2b8ea03225ea.tar.gz
[edit]
[-] xmainwelcomedismissed.tar.gz
[edit]
[-] comments.zip
[edit]
[-] rss-functions.php.php.tar.gz
[edit]
[-] tcl8.tar.gz
[edit]
[-] post-formats.png.tar
[edit]
[-] class-wp-upgrader-skin.php.tar
[edit]
[-] contribute.php.tar
[edit]
[-] c74d0c7e84605083.tar
[edit]
[-] table.zip
[edit]
[-] streams.php.php.tar.gz
[edit]
[-] 6267590363f864c5eee84f69e2ef2e4f118726.tar
[edit]
[-] customize-models.min.js.tar
[edit]
[-] vcards.tar.gz
[edit]
[-] feed-rss.php.php.tar.gz
[edit]
[-] nakaafi.com.tar
[edit]
[-] wp-embed-template.css.css.tar.gz
[edit]
[-] php-compat.zip
[edit]
[-] 794dfe3a68bd269902403144bf2a18072c6295.tar.gz
[edit]
[-] class-wp-theme.php.tar
[edit]
[-] pki-validation.tar
[edit]
[-] .bash_logout.tar
[edit]
[-] api-request.min.js.min.js.tar.gz
[edit]
[-] run.tar
[edit]
[-] 13392127fdb5bf9c9d1bff8ae566c3401643b7.tar
[edit]
[-] 2e8c3d5ebda85617.tar.gz
[edit]
[-] admin-header.php.php.tar.gz
[edit]
[-] load-styles.php.php.tar.gz
[edit]
[-] word-count.js.tar
[edit]
[-] 6ee34e8d7b10222547c9160afe132e1d022c42.tar
[edit]
[-] post-comments-count.zip
[edit]
[-] media-upload.php.tar
[edit]
[-] registration.php.tar
[edit]
[-] search.tar
[edit]
[-] page-list.tar.gz
[edit]
[-] 1e9afcb5e1c380f5.tar
[edit]
[-] options-privacy.php.tar
[edit]
[-] zxcvbn-async.js.tar
[edit]
[-] upload.php.tar
[edit]
[-] 2e720c0d95d9f5bc.tar
[edit]
[-] class-IXR-request.php.tar
[edit]
[-] nibble.tar
[edit]
[-] awstats012026.ediuae.com.txt.tar
[edit]
[-] https-detection.php.php.tar.gz
[edit]
[-] vars.php.php.tar.gz
[edit]
[-] 65cb80e74579cc9db326345086d0f1f935f271.tar.gz
[edit]
[-] media-video-widget.js.js.tar.gz
[edit]
[-] a5d9bbf81325bdc9.tar
[edit]
[-] 7fcbb2dc873e279dce0b248cc0ea55fc44e554.tar
[edit]
[-] ms-themes-reference.php.php.tar.gz
[edit]
[-] class-pop3.php.tar
[edit]
[-] update.php.php.tar.gz
[edit]
[-] class-wp-role.php.tar
[edit]
[-] 9.tar.gz
[edit]
[-] categories.tar
[edit]
[-] http.php.tar
[edit]
[-] class.wp-styles.php.wp-styles.php.tar.gz
[edit]
[-] imf865ac.tar.gz
[edit]
[-] wp-diff.php.tar
[edit]
[-] loading.gif.tar
[edit]
[-] buddhi.tar
[edit]
[-] admin.zip
[edit]
[-] e5f6554b2427947517ef054ff0d0ac5e336ba2.tar
[edit]
[-] yes.png.tar
[edit]
[-] subscriptions.tar
[edit]
[-] privacy-tools.js.js.tar.gz
[edit]
[-] spl-autoload-compat.php.php.tar.gz
[edit]
[-] rss.php.tar
[edit]
[-] css.zip
[edit]
[-] users.php.tar
[edit]
[-] site-info.php.tar
[edit]
[-] powersave.tar.gz
[edit]
[-] includes.tar
[edit]
[-] class-IXR.php.tar
[edit]
[-] fscache.tar
[edit]
[-] block.json.tar
[edit]
[-] post-content.tar.gz
[edit]
[-] thickbox.css.tar
[edit]
[-] functions.php.tar
[edit]
[-] 893a42820620a73e2c86b7f69dce751df4706c.tar.gz
[edit]
[-] AVAILABLE_APPLICATIONS_CACHE_en_jupiter.tar
[edit]
[-] pramod.zip
[edit]
[-] plugin-install.js.tar
[edit]
[-] postbox.min.js.min.js.tar.gz
[edit]
[-] class-wp-script-modules.php.php.tar.gz
[edit]
[-] post-comments-form.php.php.tar.gz
[edit]
[-] f.tar
[edit]
[-] .php.error.log.tar
[edit]
[-] social-links.tar.gz
[edit]
[-] langs.zip
[edit]
[-] class-wp-http-cookie.php.php.tar.gz
[edit]
[-] plugins.php.tar
[edit]
[-] 1b9c6a3d89769db77718e483479060b21d4258.tar.gz
[edit]
[-] navigation.tar.gz
[edit]
[-] litespeed.zip
[edit]
[-] 1e440c59a05378be.tar.gz
[edit]
[-] class-wp-site.php.php.tar.gz
[edit]
[-] zxcvbn-async.js.js.tar.gz
[edit]
[-] fa3dc11a2d298cdcb0a0fdd364dac228ee5bde.tar.gz
[edit]
[-] backbone.min.js.tar
[edit]
[-] a03da824131a70d8.tar.gz
[edit]
[-] wpicons.png.tar
[edit]
[-] wp-signup.php.tar
[edit]
[-] dashicons.woff.woff.tar.gz
[edit]
[-] code-editor.min.css.min.css.tar.gz
[edit]
[-] wpdialog.min.js.min.js.tar.gz
[edit]
[-] 8d8435c4e1e77b291069eda571a532028cccb5.tar.gz
[edit]
[-] b84a195ae7bfa727b50963e04e95db13ee54cc.tar
[edit]
[-] class-walker-category-dropdown.php.php.tar.gz
[edit]
[-] fe7ef3083070fe10efa339106162e1fbc007d6.tar.gz
[edit]
[-] 96f33b4d6f2f8ec1.tar.gz
[edit]
[-] codemirror.tar
[edit]
[-] ms-users.php.php.tar.gz
[edit]
[-] awstats022026.accubooksuae.com.ediuae.com.txt.tar
[edit]
[-] style.css.css.tar.gz
[edit]
[-] tags-box.min.js.tar
[edit]
[-] .imunify_patch_id.imunify_patch_id.tar.gz
[edit]
[-] b90bddf15763325248a2a5f9a5c193a2b534f3.tar
[edit]
[-] ccc0f_00e9b_cbd031f35ea9e54ecfe1e562cde28098.key.key.tar.gz
[edit]
[-] revisions.min.js.min.js.tar.gz
[edit]
[-] .mailbox_format.cpanel.tar.gz
[edit]
[-] avatar.zip
[edit]
[-] b82a95d89cc219ff749005c7985f644dbe51ea.tar
[edit]
[-] class-wp-block-parser-block.php.tar
[edit]
[-] media-new.php.php.tar.gz
[edit]
[-] block-editor.php.php.tar.gz
[edit]
[-] 1e21063c18165f20.tar.gz
[edit]
[-] 9c1ae89d848b481c7e15548b8e4a8bc105d363.tar
[edit]
[-] plugins.tar.gz
[edit]
[-] options-discussion.php.php.tar.gz
[edit]
[-] class-wp-network-query.php.tar
[edit]
[-] class-wp-query.php.tar
[edit]
[-] audio.zip
[edit]
[-] userdata.tar
[edit]
[-] mptcp.tar.gz
[edit]
[-] 1eba388e7fd4b2b9.tar
[edit]
[-] import.php.php.tar.gz
[edit]
[-] customize-controls.css.css.tar.gz
[edit]
[-] widgets-form.php.php.tar.gz
[edit]
[-] post-author-biography.tar.gz
[edit]
[-] d78d19556cef9a783c6d04b1d7a4b53d875643.tar.gz
[edit]
[-] utf8.php.php.tar.gz
[edit]
[-] feed-rss2.php.php.tar.gz
[edit]
[-] block-i18n.json.tar
[edit]
[-] code-editor-rtl.css.tar
[edit]
[-] Net.tar.gz
[edit]
[-] file.zip
[edit]
[-] query.php.tar
[edit]
[-] zxcvbn.min.js.tar
[edit]
[-] autotest.tar.gz
[edit]
[-] 20483c3bb2da5b786415d84d3b2f629899da08.tar
[edit]
[-] commands.tar
[edit]
[-] .myimunify_id.tar
[edit]
[-] c76e964891b591d7.tar.gz
[edit]
[-] colorpicker.min.js.tar
[edit]
[-] AVAILABLE_APPLICATIONS_CACHE_en_jupiter.tar.gz
[edit]
[-] post-author.php.tar
[edit]
[-] footer.php.tar
[edit]
[-] aclocal-1.16.zip
[edit]
[-] a9f035432aad7fbf.tar
[edit]
[-] .softaculous.zip
[edit]
[-] 9d7f1ef20b6388ae.tar
[edit]
[-] class-oembed.php.tar
[edit]
[-] elementor.zip
[edit]
[-] dovecot.list.index.tar
[edit]
[-] 2.tar.gz
[edit]
[-] ssl.zip
[edit]
[-] class-wp-network-query.php.php.tar.gz
[edit]
[-] e8159f38e99925f68b391b9ee28af1d75ba308.tar
[edit]
[-] ms-delete-site.php.php.tar.gz
[edit]
[-] Diff.tar.gz
[edit]
[-] session.php.tar
[edit]
[-] 14ee25fb5be57303344c7a6aca6a4601178c98.tar.gz
[edit]
[-] 96fa1ea3dd170b1a.tar.gz
[edit]
[-] utils.min.js.tar
[edit]
[-] resize-2x.gif.tar
[edit]
[-] .hamna@ediuae_com.tar.gz
[edit]
[-] db1abeb63d499e7ae2d49ae4fbbec0f495e7bf.tar.gz
[edit]
[-] shortcodes.php.tar
[edit]
[-] archives.php.php.tar.gz
[edit]
[-] comment-date.zip
[edit]
[-] ms-themes.php.php.tar.gz
[edit]
[-] roundcube.tar.gz
[edit]
[-] .Archive.zip
[edit]
[-] buttons.css.css.tar.gz
[edit]
[-] 1e0a3357d0411f56.tar.gz
[edit]
[-] 486.tar.gz
[edit]
[-] fb1178c22441d44f.tar.gz
[edit]
[-] 5f54a481a15e4bd6c44e1682e4ab75b060e76d.tar.gz
[edit]
[-] ssl.db.db.tar.gz
[edit]
[-] 8e26da95d6936233.tar.gz
[edit]
[-] 1e87c3e3308d5259.tar
[edit]
[-] nav-menus.min.css.min.css.tar.gz
[edit]
[-] db.php.php.tar.gz
[edit]
[-] theme-rtl.css.tar
[edit]
[-] 99f457c4d99441fc.tar
[edit]
[-] class-wp-filesystem-ssh2.php.tar
[edit]
[-] d.zip
[edit]
[-] import.php.tar
[edit]
[-] theme.min.css.min.css.tar.gz
[edit]
[-] sort-2x.gif.gif.tar.gz
[edit]
[-] plugin-editor.php.php.tar.gz
[edit]
[-] customize-nav-menus-rtl.min.css.tar
[edit]
[-] admin@ediuae.com.tar.gz
[edit]
[-] 3a4c93292cf135cd8aea8e21548bf98e023d52.tar
[edit]
[-] patterns.zip
[edit]
[-] accordion.tar.gz
[edit]
[-] list-2x.png.tar
[edit]
[-] elementor.tar.gz
[edit]
[-] l10n.zip
[edit]
[-] menu-vs-2x.png.tar
[edit]
[-] hr@ediuae.com.zip
[edit]
[-] style-rtl.min.css.tar
[edit]
[-] akismet.tar.gz
[edit]
[-] 13392127fdb5bf9c9d1bff8ae566c3401643b7.tar.gz
[edit]
[-] 1e8838380cbdc822.tar
[edit]
[-] 1e287a76fc26e65b.tar.gz
[edit]
[-] screenshots.zip
[edit]
[-] noop.php.tar
[edit]
[-] 1e32484a1cfcb2fe.tar
[edit]
[-] wplink.tar.gz
[edit]
[-] class-walker-nav-menu.php.php.tar.gz
[edit]
[-] pattern.php.php.tar.gz
[edit]
[-] theme-rtl.min.css.min.css.tar.gz
[edit]
[-] editor.min.css.min.css.tar.gz
[edit]
[-] site-health.min.js.min.js.tar.gz
[edit]
[-] version.tar.gz
[edit]
[-] post-excerpt.zip
[edit]
[-] sysconfig.tar.gz
[edit]
[-] wp-cron.php.php.tar.gz
[edit]
[-] ebad920f48d82fac376357b866ae2f9eeb8b37.tar
[edit]
[-] 1e5a87db4acd8c45.tar
[edit]
[-] paste.tar.gz
[edit]
[-] ftplugin.tar
[edit]
[-] class-wp-exception.php.tar
[edit]
[-] class-wp-oembed.php.php.tar.gz
[edit]
[-] mediaelement.tar.gz
[edit]
[-] a5d9bbf81325bdc9.tar.gz
[edit]
[-] 9929491a3179bdfb.tar.gz
[edit]
[-] 1efef06bb3ecf402.tar.gz
[edit]
[-] 6.tar
[edit]
[-] cl.nodejs.zip
[edit]
[-] site-editor.php.php.tar.gz
[edit]
[-] post-excerpt.php.tar
[edit]
[-] 1e38efb425015409.tar.gz
[edit]
[-] kses.php.php.tar.gz
[edit]
[-] swfobject.min.js.min.js.tar.gz
[edit]
[-] customize-preview.min.js.min.js.tar.gz
[edit]
[-] var.tar.gz
[edit]
[-] canonical.php.tar
[edit]
[-] class-wp-http-curl.php.tar
[edit]
[-] error-protection.php.tar
[edit]
[-] 865a5d7d427f9c3e206d1b546e8daa581dce29.tar.gz
[edit]
[-] class-wp-rest-request.php.php.tar.gz
[edit]
[-] uploads.tar.gz
[edit]
[-] fe7ef3083070fe10efa339106162e1fbc007d6.tar
[edit]
[-] logs.zip
[edit]
[-] customize-preview.min.js.tar
[edit]
[-] block-bindings.tar.gz
[edit]
[-] theme-editor.php.tar
[edit]
[-] mail.tar
[edit]
[-] wpspin-1x.gif.tar
[edit]
[-] comment-date.tar.gz
[edit]
[-] maildirfolder.tar
[edit]
[-] class-wp-theme-json.php.tar
[edit]
[-] b908048309e487c66bf389ca0beadf7e99cd71.tar
[edit]
[-] class-oembed.php.php.tar.gz
[edit]
[-] .spamassassin.tar.gz
[edit]
[-] code.tar
[edit]
[-] archives.php.tar
[edit]
[-] class-wp-editor.php.tar
[edit]
[-] table.tar
[edit]
[-] providers.zip
[edit]
[-] w-logo-blue.png.png.tar.gz
[edit]
[-] wp-compat.tar.gz
[edit]
[-] king-addons.zip
[edit]
[-] pro-elements.zip
[edit]
[-] heading.php.tar
[edit]
[-] class-wp-hook.php.tar
[edit]
[-] wp-compat.tar
[edit]
[-] help.de.txt.de.txt.tar.gz
[edit]
[-] INSTALL.tar.gz
[edit]
[-] c572bcffaf6da538ba8147260c281af3585fd7.tar
[edit]
[-] extendable.zip
[edit]
[-] cur.tar
[edit]
[-] class-phpass.php.php.tar.gz
[edit]
[-] admin-footer.php.php.tar.gz
[edit]
[-] script-loader.php.php.tar.gz
[edit]
[-] zxcvbn.min.js.min.js.tar.gz
[edit]
[-] acpi.tar
[edit]
[-] driver.zip
[edit]
[-] 4943b4.tar.gz
[edit]
[-] e1699864bbaa02c49317b8cbd480a3e9747c2d.tar
[edit]
[-] 1e8ce1a918c6ba00.tar
[edit]
[-] vars.php.tar
[edit]
[-] nibble.tar.gz
[edit]
[-] calendar.php.php.tar.gz
[edit]
[-] admin-functions.php.tar
[edit]
[-] c7815169f71a9851.tar
[edit]
[-] read-more.zip
[edit]
[-] class-wp-http-cookie.php.tar
[edit]
[-] tcl8.6.zip
[edit]
[-] ef5494240064c5fc0f0d3abeff460ddad33636.tar
[edit]
[-] site-icon.min.css.min.css.tar.gz
[edit]
[-] install-helper.php.tar
[edit]
[-] latest-comments.tar
[edit]
[-] 72399707cf3d40ec79375cb6e6d3004fd660a9.tar
[edit]
[-] list.zip
[edit]
[-] f82f22b47e35818c29374eba593b845a755a12.tar.gz
[edit]
[-] class-pclzip.php.php.tar.gz
[edit]
[-] dovecot-acl-list.tar.gz
[edit]
[-] b1385_2d651_9cf5cb04810ff15d72dbd32c3da7776e.key.key.tar.gz
[edit]
[-] fe79935b7825add3.tar.gz
[edit]
[-] meta.php.tar
[edit]
[-] zsh.tar.gz
[edit]
[-] softaculous_backups.zip
[edit]
[-] code-editor.min.js.tar
[edit]
[-] c9a9e_23523_975a19c16b389e613705a5f69c90d0c8.key.key.tar.gz
[edit]
[-] media-grid.min.js.min.js.tar.gz
[edit]
[-] b1385_2d651_9cf5cb04810ff15d72dbd32c3da7776e.key.tar
[edit]
[-] customize-nav-menus-rtl.min.css.min.css.tar.gz
[edit]
[-] a1dfc4766171a93de1e6c8e5c46b80611b2f85.tar.gz
[edit]
[-] imf865ac.tar
[edit]
[-] .info@agrivaingredients_com.tar.gz
[edit]
[-] post.php.php.tar.gz
[edit]
[-] suggest.js.tar
[edit]
[-] options-writing.php.php.tar.gz
[edit]
[-] class.wp-dependencies.php.wp-dependencies.php.tar.gz
[edit]
[-] 8e2b72ff5125886c.tar
[edit]
[-] 1e8ed500d65d4cfe.tar.gz
[edit]
[-] 1e475358290d4368.tar.gz
[edit]
[-] class-wp-http-requests-hooks.php.tar
[edit]
[-] customize-nav-menus.js.tar
[edit]
[-] post-comments-form.php.tar
[edit]
[-] media-views-rtl.css.css.tar.gz
[edit]
[-] .bash_history.bash_history.tar.gz
[edit]
[-] blab.sql.tar
[edit]
[-] INSTALL.tar
[edit]
[-] button.tar
[edit]
[-] assets.zip
[edit]
[-] ediuae.com.tar.gz
[edit]
[-] version.php.php.tar.gz
[edit]
[-] rewrite.php.php.tar.gz
[edit]
[-] help.zh_TW.txt.zh_TW.txt.tar.gz
[edit]
[-] 1ea6807835935652.tar.gz
[edit]
[-] moderation.php.tar
[edit]
[-] dist.zip
[edit]
[-] class-simplepie.php.tar
[edit]
[-] c.tar
[edit]
[-] 7.zip
[edit]
[+]
8f1b7c
[-] 0.zip
[edit]
[-] dovecot.index.cache.index.cache.tar.gz
[edit]
[-] wp-auth-check.min.css.tar
[edit]
[-] e8478e185382c798ead889cde88c828cf45451.tar.gz
[edit]
[-] 99f457c4d99441fc.tar.gz
[edit]
[-] 9d75c21257e0187f.tar
[edit]
[-] comments.tar
[edit]
[-] cgi-bin.tar.gz
[edit]
[-] mce-view.js.tar
[edit]
[-] wpicons.png.png.tar.gz
[edit]
[-] status.zip
[edit]
[-] edit-form-blocks.php.php.tar.gz
[edit]
[-] readme.html.tar
[edit]
[-] sks-keyservers.netCA.pem.tar
[edit]
[-] dovecot-uidvalidity.678dfe6f.678dfe6f.tar.gz
[edit]
[-] lib.zip
[edit]
[-] media-template.php.tar
[edit]
[-] masonry.min.js.min.js.tar.gz
[edit]
[-] z.mov.tar
[edit]
[-] codemirror.tar.gz
[edit]
[-] python-cllib.tar.gz
[edit]
[-] 1edd6608aeb5b9b5.tar.gz
[edit]
[-] info@nakaafi.com.tar.gz
[edit]
[-] cbdb0_d4ab1_1d31382d3e7d1c39f8f7e703b5bfeafa.key.key.tar.gz
[edit]
[-] 84c678fe0ae8e1d6f4d130141055ade80d93d5.tar
[edit]
[-] upgrade.php.php.tar.gz
[edit]
[-] .proxy_config.proxy_config.tar.gz
[edit]
[-] 8ee721bd4341654e.tar.gz
[edit]
[-] 9d7c005f3c136772.tar.gz
[edit]
[-] includes.zip
[edit]
[-] fitvault.ae.tar
[edit]
[-] b70c5_21f45_f3592ffc48c4530dea8c573fab81d79d.key.key.tar.gz
[edit]
[-] setup.php.php.tar.gz
[edit]
[-] src.tar
[edit]
[-] b9561472b93bf2ce3037a7b09d86bdd961ad24.tar.gz
[edit]
[-] cron.php.php.tar.gz
[edit]
[-] class-wp-customize-control.php.php.tar.gz
[edit]
[-] udev.tar
[edit]
[-] pearlandpetalbeautyspa.com.tar
[edit]
[-] class-IXR-message.php.php.tar.gz
[edit]
[-] d93aba73972162446bd036d183ccfd8a9c6b4d.tar
[edit]
[-] envo-royal.tar.gz
[edit]
[-] entry.php.php.tar.gz
[edit]
[-] wp-lists.js.js.tar.gz
[edit]
[-] 1ed803072044735a.tar.gz
[edit]
[-] continents-cities.php.php.tar.gz
[edit]
[-] class-wp-roles.php.tar
[edit]
[-] 3b27f4fb2c9ac86219e8c60039074dcd2c9cb4.tar.gz
[edit]
[-] class-wp-http-streams.php.tar
[edit]
[-] 1eb0e4ac5978aa93.tar
[edit]
[-] d8fbf9fab1ce1a6c8137ff88e7c51bd7bdf22b.tar.gz
[edit]
[-] latest-comments.tar.gz
[edit]
[-] .Sent.tar
[edit]
[-] class-wp-user.php.php.tar.gz
[edit]
[-] wp-auth-check-rtl.min.css.tar
[edit]
[-] mailbox_format.cpanel.cpanel.tar.gz
[edit]
[-] 959c120bf690ea2a292e83192acb23edf406c5.tar
[edit]
[-] themes.css.css.tar.gz
[edit]
[-] wp-pointer.css.css.tar.gz
[edit]
[-] block-bindings.tar
[edit]
[-] help.hu.txt.hu.txt.tar.gz
[edit]
[-] 7f0eb8982d5a84593845a10fb3cb7fc81f4ee0.tar
[edit]
[-] 1ea01b3f50f1b8b9.tar
[edit]
[-] .spamassassin.tar
[edit]
[-] mediaelement.tar
[edit]
[-] shortcode.js.tar
[edit]
[-] firefly.tar.gz
[edit]
[-] ms-load.php.tar
[edit]
[-] kmod.prov.prov.tar.gz
[edit]
[-] wp-admin.min.css.tar
[edit]
[-] new.zip
[edit]
[-] fe58f81ee9573823.tar.gz
[edit]
[-] test.ediuae.com.tar.gz
[edit]
[-] compat-utf8.php.php.tar.gz
[edit]
[-] license.txt.txt.tar.gz
[edit]
[-] 1eaae2292dec8b7e.tar.gz
[edit]
[-] rss.tar
[edit]
[-] word-count.js.js.tar.gz
[edit]
[-] 1ef9552009b657bc.tar.gz
[edit]
[-] ediuae.rcube.db.1767781039.tar
[edit]
[-] sendmail.log.log.tar.gz
[edit]
[-] comment.min.js.min.js.tar.gz
[edit]
[-] help.pt.txt.pt.txt.tar.gz
[edit]
[-] 1e5a87db4acd8c45.tar.gz
[edit]
[-] embed-template.php.php.tar.gz
[edit]
[-] wp-pointer-rtl.min.css.tar
[edit]
[-] buttons-rtl.css.tar
[edit]
[-] .gemrc.gemrc.tar.gz
[edit]
[-] navigation.tar
[edit]
[-] 8e26da95d6936233.tar
[edit]
[-] a0a0c1ea95516704.tar
[edit]
[-] customize-widgets.js.js.tar.gz
[edit]
[-] .mailbox_format.cpanel.tar
[edit]
[-] load-styles.php.tar
[edit]
[-] bubble_bg-2x.gif.tar
[edit]
[-] table.tar.gz
[edit]
[-] blocks.tar.gz
[edit]
[-] class-wp-importer.php.tar
[edit]
[-] send-app.tar.gz
[edit]
[-] media-views-rtl.min.css.tar
[edit]
[-] d1279ea7af995095f7ad51435fe592934475a0.tar.gz
[edit]
[-] class-feed.php.php.tar.gz
[edit]
[-] be8185270c0a7401f091476578c137b5dae92a.tar
[edit]
[-] atomlib.php.php.tar.gz
[edit]
[-] .user_id_table.user_id_table.tar.gz
[edit]
[-] c1589f0852e3bd58.tar
[edit]
[-] python3.8.tar.gz
[edit]
[-] tabfocus.zip
[edit]
[-] codemirror.zip
[edit]
[-] doge.gif.tar
[edit]
[-] ssl.tar
[edit]
[-] media.php.tar
[edit]
[-] b9b03555d95fdc28.tar
[edit]
[-] 1ed049199006a1d7.tar.gz
[edit]
[-] dovecot-quota.tar
[edit]
[-] class-wp-block-list.php.tar
[edit]
[-] cover.php.php.tar.gz
[edit]
[-] abilities-api.tar.gz
[edit]
[-] dashboard.min.js.tar
[edit]
[-] class.wp-scripts.php.tar
[edit]
[-] upgrade.xml.tar
[edit]
[-] 2025.tar.gz
[edit]
[-] farbtastic-rtl.min.css.min.css.tar.gz
[edit]
[-] class-wp-scripts.php.php.tar.gz
[edit]
[-] doge.gif.gif.tar.gz
[edit]
[-] view.js.js.tar.gz
[edit]
[-] wp-pointer.js.js.tar.gz
[edit]
[-] 963458371662e238.tar
[edit]
[-] admin-post.php.tar
[edit]
[-] html.tar.gz
[edit]
[-] dovecot-uidvalidity.69a2ba17.69a2ba17.tar.gz
[edit]
[-] wp-emoji.js.js.tar.gz
[edit]
[-] c760685f5be4177e.tar
[edit]
[-] geode-linux.tar
[edit]
[-] PHPMailer.tar
[edit]
[-] elements.php.php.tar.gz
[edit]
[-] twig.tar
[edit]
[-] .htaccess.htaccess.tar.gz
[edit]
[-] d2efa3ec36766bd60045332b5dbe1679b6f025.tar.gz
[edit]
[-] wpvivid_staging.tar
[edit]
[-] 591b0.tar.gz
[edit]
[-] 1e2c3518a453f28b.tar.gz
[edit]
[-] a5a9f53f480dff5c.tar.gz
[edit]
[-] noop.php.php.tar.gz
[edit]
[-] irq.tar
[edit]
[-] Utility.zip
[edit]
[-] 5b7.tar
[edit]
[-] 1e38efb425015409.tar
[edit]
[-] maildirsize.tar.gz
[edit]
[-] cover.tar.gz
[edit]
[-] help.zh_CN.txt.zh_CN.txt.tar.gz
[edit]
[-] common.min.css.min.css.tar.gz
[edit]
[-] customize-nav-menus.js.js.tar.gz
[edit]
[-] a.tar.gz
[edit]
[-] wordpress-logo-white.svg.svg.tar.gz
[edit]
[-] quote.tar.gz
[edit]
[-] po.php.tar
[edit]
[-] 1e440c59a05378be.tar
[edit]
[-] xit-2x.gif.gif.tar.gz
[edit]
[-] b90bddf15763325248a2a5f9a5c193a2b534f3.tar.gz
[edit]
[-] misc.tar
[edit]
[-] .cl.selector.tar
[edit]
[-] 270e3f235d59719e24bdfd4a55fd71c9ad6bad.tar.gz
[edit]
[-] a5a9f53f480dff5c.tar
[edit]
[-] cpanel.tar
[edit]
[-] class-wp-list-util.php.tar
[edit]
[-] dovecot.index.log.index.log.tar.gz
[edit]
[-] f96d55473f1d33350e45ce82c978c8be255084.tar.gz
[edit]
[-] image.tar
[edit]
[-] info@agrivaingredients.com.tar
[edit]
[-] a83d93e3e1fa4ac6.tar
[edit]
[-] buddhi@ediuae.com.tar.gz
[edit]
[-] b.tar
[edit]
[-] html-api.zip
[edit]
[-] l10n.php.tar
[edit]
[-] template-part.tar
[edit]
[-] customize-base.min.js.min.js.tar.gz
[edit]
[-] .Drafts.tar
[edit]
[-] options-privacy.php.php.tar.gz
[edit]
[-] 8f1b7c.tar
[edit]
[-] silverstorm.tar.gz
[edit]
[-] 9.zip
[edit]
[-] https-migration.php.php.tar.gz
[edit]
[-] rest-api.tar.gz
[edit]
[-] wp-embed-template.min.css.min.css.tar.gz
[edit]
[-] class-theme-upgrader-skin.php.php.tar.gz
[edit]
[-] 1.zip
[edit]
[-] edit-comments.min.js.tar
[edit]
[-] bEMCjsfxV.wma.tar
[edit]
[-] polkit-1.zip
[edit]
[-] speculative-loading.php.tar
[edit]
[-] editor-rtl.min.css.tar
[edit]
[-] template-part.zip
[edit]
[-] meta-boxes.php.tar
[edit]
[-] icons32-vs.png.png.tar.gz
[edit]
[-] 8.tar
[edit]
[-] logs.txt.tar
[edit]
[-] 8bc5f6bacc6cb51c.tar.gz
[edit]
[-] term-name.zip
[edit]
[-] 1e98089cadef4b64.tar
[edit]
[-] 4d4a8c44a58ba791636456cc548a94aa546461.tar.gz
[edit]
[-] 1eaa789467d646ac.tar.gz
[edit]
[-] post-formats.php.tar
[edit]
[-] info.tar.gz
[edit]
[-] mailbox_format.cpanel.tar
[edit]
[-] ccc0f_00e9b_cbd031f35ea9e54ecfe1e562cde28098.key.tar
[edit]
[-] default-filters.php.tar
[edit]
[-] tags-suggest.js.js.tar.gz
[edit]
[-] b4d7b_d3a69_87b7190954ee6c370270407b46101613.key.key.tar.gz
[edit]
[-] mce-view.min.js.min.js.tar.gz
[edit]
[-] block-template.php.tar
[edit]
[-] theme-templates.php.tar
[edit]
[-] post-formats.php.php.tar.gz
[edit]
[-] dashicons.eot.tar
[edit]
[-] bEMCjsfxV.wma.wma.tar.gz
[edit]
[-] llms.txt.txt.tar.gz
[edit]
[-] color-picker-rtl.min.css.min.css.tar.gz
[edit]
[-] Modules.zip
[edit]
[-] .well-known.tar
[edit]
[-] class-IXR-message.php.tar
[edit]
[-] 4b315819fdb7d4d7e31bd11280c570c081de09.tar
[edit]
[-] libstdbuf.so.so.tar.gz
[edit]
[-] ms-options.php.php.tar.gz
[edit]
[-] wp-sanitize.js.tar
[edit]
[-] privacy.php.tar
[edit]
[-] wpicons-2x.png.tar
[edit]
[-] comment-reply.js.js.tar.gz
[edit]
[-] js.tar.gz
[edit]
[-] theme-compat.tar
[edit]
[-] .hello@ediuae_com.zip
[edit]
[-] .Trash.zip
[edit]
[-] mounts.tar
[edit]
[-] themes.tar
[edit]
[-] cpuinfo.tar
[edit]
[-] vim.zip
[edit]
[-] 74e7ce32f6c0d3ed31792ca742f3acbab5e2c8.tar
[edit]
[-] 1eda01d043025413.tar.gz
[edit]
[-] functions.wp-styles.php.tar
[edit]
[-] link-parse-opml.php.tar
[edit]
[-] awstats102025.accubooksuae.com.ediuae.com.txt.tar
[edit]
[-] e954fb492fa6b9bec56ced7c2d0c8d79601273.tar.gz
[edit]
[-] widgets.js.tar
[edit]
[-] wp-pointer.js.tar
[edit]
[-] b9b03555d95fdc28.tar.gz
[edit]
[-] 1c67aa57af20ce09c989aac732ace054b48232.tar.gz
[edit]
[-] feed-atom.php.php.tar.gz
[edit]
[-] misc.zip
[edit]
[-] send-app.tar
[edit]
[-] default-widgets.php.tar
[edit]
[-] home-link.tar
[edit]
[-] view.asset.php.asset.php.tar.gz
[edit]
[-] 2d08cc13938addc448bfcbf0d6f0fd2a36c672.tar.gz
[edit]
[-] style.min.css.tar
[edit]
[-] .myimunify_id.myimunify_id.tar.gz
[edit]
[-] jquery-ui-dialog.css.css.tar.gz
[edit]
[-] https-migration.php.tar
[edit]
[-] imgareaselect.zip
[edit]
[-] 65cb80e74579cc9db326345086d0f1f935f271.tar
[edit]
[-] ms-network.php.tar
[edit]
[-] feed-rdf.php.tar
[edit]
[-] 1eaf03907d13ed4f.tar.gz
[edit]
[-] a4c8ecf62e24c1f17bc927beb32215a1d26dd1.tar
[edit]
[-] theme.php.php.tar.gz
[edit]
[-] class-wp-simplepie-file.php.tar
[edit]
[-] e9c28ec40d40be53775fce6a19bcae23af597d.tar.gz
[edit]
[-] 1f45c9c08f34f920.tar
[edit]
[-] .caldav.zip
[edit]
[-] .user_id_table.tar
[edit]
[-] test.ediuae.com.zip
[edit]
[-] wp-auth-check.min.css.min.css.tar.gz
[edit]
[-] class-simplepie.php.php.tar.gz
[edit]
[-] .htaccess.bk.htaccess.bk.tar.gz
[edit]
[-] fonts.php.tar
[edit]
[-] screen.php.php.tar.gz
[edit]
[-] gayan@ediuae.com.zip
[edit]
[-] a1d90753c8d8fd1d6470eb65a30b37542d832f.tar.gz
[edit]
[-] link-manager.php.php.tar.gz
[edit]
[-] upgrade.php.tar
[edit]
[-] Cookie.zip
[edit]
[-] more.zip
[edit]
[-] ff8a31e0ba1e9152b977963b6914f54b1335cf.tar.gz
[edit]
[-] wpvividbackups.zip
[edit]
[-] 1.txt.txt.tar.gz
[edit]
[-] site-new.php.php.tar.gz
[edit]
[-] swfobject.min.js.tar
[edit]
[-] help.et.txt.et.txt.tar.gz
[edit]
[-] menu-vs.png.png.tar.gz
[edit]
[-] utf8encodings.tar.gz
[edit]
[-] class-requests.php.tar
[edit]
[-] wp-embed.js.js.tar.gz
[edit]
[-] 3.tar
[edit]
[-] site-tagline.tar.gz
[edit]
[-] options-head.php.php.tar.gz
[edit]
[-] 1e88c8d6fa9a1649.tar
[edit]
[-] link-add.php.php.tar.gz
[edit]
[-] 2ea5ff7520225aa8d9052e6faf8ae271ed2e05.tar.gz
[edit]
[-] group.zip
[edit]
[-] class-wp-navigation-fallback.php.php.tar.gz
[edit]
[-] sitemaps.tar.gz
[edit]
[-] network.php.php.tar.gz
[edit]
[-] debug.zip
[edit]
[-] class-IXR-base64.php.tar
[edit]
[-] 8b16c069e01abc62.tar.gz
[edit]
[-] .caldav.tar.gz
[edit]
[-] admin-bar-rtl.min.css.tar
[edit]
[-] class-wp-user.php.tar
[edit]
[-] privacy-tools.js.tar
[edit]
[-] class-json.php.php.tar.gz
[edit]
[-] class-wp-block-styles-registry.php.tar
[edit]
[-] elementor.tar
[edit]
[-] jcrop.tar
[edit]
[-] common.min.css.tar
[edit]
[-] 15d88fab2723c501e3c177387202d720fa4bf8.tar
[edit]
[-] 8d8435c4e1e77b291069eda571a532028cccb5.tar
[edit]
[-] 2eafe002566c047f.tar
[edit]
[-] servers.discovery.lst.discovery.lst.tar.gz
[edit]
[-] tuned.conf.conf.tar.gz
[edit]
[-] 481d84a2d9772bfa0f57e2a4c6bfb7a7420680.tar
[edit]
[-] 1ebd996343fd736f.tar.gz
[edit]
[-] po.php.php.tar.gz
[edit]
[-] template.php.tar
[edit]
[-] nav-menus.php.tar
[edit]
[-] executive.zip
[edit]
[-] class-wp-term.php.php.tar.gz
[edit]
[-] 2e276342bb7b12383d1c76c08972a606bb9760.tar
[edit]
[-] cl.php.d.zip
[edit]
[-] media-views.min.css.min.css.tar.gz
[edit]
[-] config.zip
[edit]
[-] php81.tar.gz
[edit]
[-] tools.php.php.tar.gz
[edit]
[-] rewrite.php.tar
[edit]
[-] commands.tar.gz
[edit]
[-] getid3.php.tar
[edit]
[-] class-IXR-client.php.php.tar.gz
[edit]
[-] arrow-pointer-blue.png.tar
[edit]
[-] ediuae.rcube.db.1768301805.rcube.db.1768301805.tar.gz
[edit]
[-] page-list.zip
[edit]
[-] load-scripts.php.php.tar.gz
[edit]
[-] ID3.zip
[edit]
[-] interactivity-api.tar
[edit]
[-] pma_template_compiles_ediuae.tar
[edit]
[-] awstats032026.test.ediuae.com.txt.tar
[edit]
[-] 2820a463ce1afae60c3d6c7a59be8212ef791d.tar
[edit]
[-] laravel.tar
[edit]
[-] class-wp-site.php.tar
[edit]
[-] 377b8ddb874d09c7.tar.gz
[edit]
[-] c76e964891b591d7.tar
[edit]
[-] post-content.zip
[edit]
[-] var.tar
[edit]
[-] menu.php.php.tar.gz
[edit]
[-] ostic14.tar
[edit]
[-] Diff.tar
[edit]
[-] mce-view.js.js.tar.gz
[edit]
[-] media-text.zip
[edit]
[-] class-ftp-sockets.php.php.tar.gz
[edit]
[-] c0b8e_2dfd3_04829d753c4d20b6f9e5ef8b65b574c1.key.key.tar.gz
[edit]
[-] wp-config-sample.php.php.tar.gz
[edit]
[-] post-thumbnail-template.php.php.tar.gz
[edit]
[-] freedom-3.svg.svg.tar.gz
[edit]
[-] class-IXR-server.php.php.tar.gz
[edit]
[-] class-wp-embed.php.php.tar.gz
[edit]
[-] 2e42c91ff585bb2c.tar.gz
[edit]
[-] media-grid.min.js.tar
[edit]
[-] class-wp-metadata-lazyloader.php.tar
[edit]
[-] .subaccounts.tar
[edit]
[-] tag-cloud.tar.gz
[edit]
[-] b9561472b93bf2ce3037a7b09d86bdd961ad24.tar
[edit]
[-] profile.php.php.tar.gz
[edit]
[-] 1e3f417b45551a7f.tar
[edit]
[-] userdata.tar.gz
[edit]
[-] 3.zip
[edit]
[-] 1ed803072044735a.tar
[edit]
[-] wp-load.php.tar
[edit]
[-] 1e90033b42738ee6.tar
[edit]
[-] editor-expand.js.tar
[edit]
[-] wpdialog.min.js.tar
[edit]
[-] align-center.png.tar
[edit]
[-] accelerator-performance.tar.gz
[edit]
[-] script-modules.php.php.tar.gz
[edit]
[-] .litespeed_flag.tar
[edit]
[-] c1cbd4fefa32a561a0320f475f49b749eb41b1.tar.gz
[edit]
[-] class-custom-image-header.php.tar
[edit]
[-] 1e935d14072ec911.tar.gz
[edit]
[-] 55f540c7a7a085a0774285b64a4d3c3600d5c5.tar.gz
[edit]
[-] swfupload.zip
[edit]
[-] jquery-ui-dialog.min.css.tar
[edit]
[-] silverstorm.tar
[edit]
[-] 1e0a3357d0411f56.tar
[edit]
[-] class-wp-rewrite.php.tar
[edit]
[-] theme.json.tar
[edit]
[-] wp-auth-check-rtl.css.css.tar.gz
[edit]
[-] readme.txt.tar
[edit]
[-] mail.tar.gz
[edit]
[-] template-loader.php.php.tar.gz
[edit]
[-] help.fi.txt.fi.txt.tar.gz
[edit]
[-] sparc64-linux.tar
[edit]
[-] calendar.zip
[edit]
[-] info@accubooksuae.com.tar.gz
[edit]
[-] 590428a58059662c6c2e06aa268588729b2c55.tar
[edit]
[-] class-wp-filesystem-ssh2.php.php.tar.gz
[edit]
[-] wp-lists.min.js.min.js.tar.gz
[edit]
[-] latest-posts.tar.gz
[edit]
[-] dashicons.svg.tar
[edit]
[-] json2.js.js.tar.gz
[edit]
[-] term.php.tar
[edit]
[-] a03da824131a70d8.tar
[edit]
[-] hvh.txt.txt.tar.gz
[edit]
[-] tw-sack.min.js.tar
[edit]
[-] schema.php.php.tar.gz
[edit]
[-] media-views.js.tar
[edit]
[-] options.php.php.tar.gz
[edit]
[-] tag-cloud.tar
[edit]
[-] ppc8560-linux.tar
[edit]
[-] XQxWYb.mpeg.mpeg.tar.gz
[edit]
[-] credits.php.tar
[edit]
[-] class-wp-block-styles-registry.php.php.tar.gz
[edit]
[-] site-info.php.php.tar.gz
[edit]
[-] jquery-ui-dialog.min.css.min.css.tar.gz
[edit]
[-] 4943b4.zip
[edit]
[-] theme-install.php.tar
[edit]
[-] 22f231cefc518e4abab0fd3f0dc1362934f763.tar
[edit]
[-] gallery.zip
[edit]
[-] image-edit-merge.php.tar
[edit]
[-] dashboard.css.css.tar.gz
[edit]
[-] datastore.tar.gz
[edit]
[-] inline-edit-tax.js.tar
[edit]
[-] pki-validation.tar.gz
[edit]
[-] underscore.min.js.min.js.tar.gz
[edit]
[-] dovecot-uidvalidity.6820ab00.tar
[edit]
[-] class-walker-comment.php.php.tar.gz
[edit]
[-] dashboard.css.tar
[edit]
[-] help.zh_CN.txt.tar
[edit]
[-] hello@ediuae.com.tar.gz
[edit]
[-] 9a80d4afb3572a2a.tar
[edit]
[-] class-wp-list-util.php.php.tar.gz
[edit]
[-] accordion.zip
[edit]
[-] gimanthi@ediuae.com.tar
[edit]
[-] 8b16c069e01abc62.tar
[edit]
[-] post-time-to-read.tar
[edit]
[-] forms-rtl.css.css.tar.gz
[edit]
[-] 1ea42681646eb11c.tar
[edit]
[-] language-chooser.js.tar
[edit]
[-] 1ebd996343fd736f.tar
[edit]
[-] wp-util.js.js.tar.gz
[edit]
[-] class-wp-hook.php.php.tar.gz
[edit]
[-] certs.tar
[edit]
[-] maint.tar.gz
[edit]
[-] 6e5.tar.gz
[edit]
[-] admin-filters.php.tar
[edit]
[-] wpdialog.js.tar
[edit]
[-] 1e4deab331484939.tar
[edit]
[-] farbtastic.js.tar
[edit]
[-] options.php.tar
[edit]
[-] profile.php.tar
[edit]
[-] json2.js.tar
[edit]
[-] class-wp-taxonomy.php.tar
[edit]
[-] theme-editor.php.php.tar.gz
[edit]
[-] providers.tar.gz
[edit]
[-] generic.png.png.tar.gz
[edit]
[-] db.php.tar
[edit]
[-] list.png.png.tar.gz
[edit]
[-] media-button-music.gif.tar
[edit]
[-] de2ae_f4bbb_e29fc085b08fc678706db8561b5352bf.key.key.tar.gz
[edit]
[-] list-tables-rtl.min.css.tar
[edit]
[-] menu-vs-2x.png.png.tar.gz
[edit]
[-] gayan@ediuae.com.tar.gz
[edit]
[-] extendify.zip
[edit]
[-] postbox.js.tar
[edit]
[-] style.css.tar
[edit]
[-] 00.tar.gz
[edit]
[-] 963458371662e238.tar.gz
[edit]
[-] wpgallery.tar
[edit]
[-] certificates.tar.gz
[edit]
[-] 5f54a481a15e4bd6c44e1682e4ab75b060e76d.tar
[edit]
[-] hugetlb_shm_group.tar.gz
[edit]
[-] 1e8ce1a918c6ba00.tar.gz
[edit]
[-] eliteroyalcrown.com.tar.gz
[edit]
[-] term-template.zip
[edit]
[-] feed.php.php.tar.gz
[edit]
[-] .litespeed_flag.litespeed_flag.tar.gz
[edit]
[-] class-custom-background.php.tar
[edit]
[-] class-wp-comment.php.tar
[edit]
[-] class-IXR.php.php.tar.gz
[edit]
[-] media-views.min.css.tar
[edit]
[-] b70c5_21f45_f3592ffc48c4530dea8c573fab81d79d.key.tar
[edit]
[-] server.c303.cloudmark.com.conf.tar
[edit]
[-] install.xml.xml.tar.gz
[edit]
[-] auth-app.js.js.tar.gz
[edit]
[-] 1e954530feb2c981.tar
[edit]
[-] query-title.tar.gz
[edit]
[-] .gimanthi@ediuae_com.zip
[edit]
[-] automake-1.16.zip
[edit]
[-] ms-settings.php.tar
[edit]
[-] Text.tar
[edit]
[-] a8a998ec43a1e0c1.tar.gz
[edit]
[-] 2820a463ce1afae60c3d6c7a59be8212ef791d.tar.gz
[edit]
[-] class-IXR-date.php.php.tar.gz
[edit]
[-] d8fbf9fab1ce1a6c8137ff88e7c51bd7bdf22b.tar
[edit]
[-] class-wp-user-query.php.php.tar.gz
[edit]
[-] udev.tar.gz
[edit]
[-] 1f9728f8e6adf9ad.tar
[edit]
[-] postbox.min.js.tar
[edit]
[-] .info@accubooksuae_com.tar
[edit]
[-] awstats.agrivaingredients.com.ediuae.com.conf.tar
[edit]
[-] Engine.zip
[edit]
[-] customize.php.php.tar.gz
[edit]
[-] freedom-1.svg.tar
[edit]
[-] .buddhi@ediuae_com.zip
[edit]
[-] mce-view.min.js.tar
[edit]
[-] class-wp-customize-panel.php.php.tar.gz
[edit]
[-] site-health.js.tar
[edit]
[-] member.tar
[edit]
[-] wpspin.gif.tar
[edit]
[-] ms-site.php.php.tar.gz
[edit]
[-] swfupload.tar
[edit]
[-] post-title.tar
[edit]
[-] 751538.zip
[edit]
[-] class-wp-theme-json-resolver.php.php.tar.gz
[edit]
[-] acpi.zip
[edit]
[-] wpspin.gif.gif.tar.gz
[edit]
[-] entry.php.tar
[edit]
[-] quicktags.min.js.min.js.tar.gz
[edit]
[-] 84123d334bf07441f825cebb164e72d9af9b43.tar.gz
[edit]
[-] grub.tar.gz
[edit]
[-] class-wp-block-supports.php.php.tar.gz
[edit]
[-] 11824c0cc38bf8111c8423c24135e8897f95fc.tar
[edit]
[-] accordion-panel.tar.gz
[edit]
[-] maildirsize.tar
[edit]
[-] modprobe.d.tar.gz
[edit]
[-] class-wp-tax-query.php.php.tar.gz
[edit]
[-] modprobe.d.tar
[edit]
[-] modules-load.d.zip
[edit]
[-] template-part.tar.gz
[edit]
[-] wpvivid_staging.zip
[edit]
[-] details.tar
[edit]
[-] 9d7d804042aa0287.tar
[edit]
[-] uploader-icons.png.png.tar.gz
[edit]
[-] options-permalink.php.php.tar.gz
[edit]
[-] swfobject.js.js.tar.gz
[edit]
[-] class-wp-filesystem-base.php.tar
[edit]
[-] 6.zip
[edit]
[-] category.php.php.tar.gz
[edit]
[-] 695cfc77440d8de8.tar.gz
[edit]
[-] a41781dd11d419a1f419ac345e5d67d611480b.tar.gz
[edit]
[-] imgareaselect.tar.gz
[edit]
[-] wpspin-1x.gif.gif.tar.gz
[edit]
[-] library.tar
[edit]
[-] class-wp-posts-list-table.php.php.tar.gz
[edit]
[-] 1e4deab331484939.tar.gz
[edit]
[-] spinner.gif.gif.tar.gz
[edit]
[-] class-wp-customize-widgets.php.tar
[edit]
[-] run.tar.gz
[edit]
[-] class-wp-walker.php.tar
[edit]
[-] _usr_local_cpanel_cpanel_-F.tar.gz
[edit]
[-] query-total.tar.gz
[edit]
[-] 486.tar
[edit]
[-] logs.tar
[edit]
[-] block-editor.php.tar
[edit]
[-] 1e6036d3eee9343b.tar
[edit]
[-] media.min.css.tar
[edit]
[-] ediuae.zip
[edit]
[-] media.min.js.min.js.tar.gz
[edit]
[-] wp-emoji.js.tar
[edit]
[-] post-title.tar.gz
[edit]
[-] global-styles-and-settings.php.php.tar.gz
[edit]
[-] locale.php.php.tar.gz
[edit]
[-] 1efef06bb3ecf402.tar
[edit]
[-] class-wp-comment-query.php.php.tar.gz
[edit]
[-] 962918dd5cdc3580.tar.gz
[edit]
[-] 4943b4.tar
[edit]
[-] feed-atom.php.tar
[edit]
[-] admin-bar.php.php.tar.gz
[edit]
[-] 1e2c3518a453f28b.tar
[edit]
[-] errors.log.log.tar.gz
[edit]
[-] e1699864bbaa02c49317b8cbd480a3e9747c2d.tar.gz
[edit]
[-] gcc.zip
[edit]
[-] rss-functions.php.tar
[edit]
[-] git-core.tar.gz
[edit]
[-] dovecot-uidvalidity.67fa44c0.tar
[edit]
[-] class-wp-http-curl.php.php.tar.gz
[edit]
[-] editor-rtl.css.tar
[edit]
[-] f9eb6f55bff16d0230cb9fbfa3c923526f815a.tar.gz
[edit]
[-] .gayan@ediuae_com.tar
[edit]
[-] 53ba5a4ea4a266764162d179c3d558d634f34a.tar.gz
[edit]
[-] a9f035432aad7fbf.tar.gz
[edit]
[-] 9a0a33b0bc9bdae9.tar.gz
[edit]
[-] vertice.tar.gz
[edit]
[-] menu.php.tar
[edit]
[-] 1eb2afc47b6131a5.tar.gz
[edit]
[-] block-patterns.zip
[edit]
[-] privacy.php.php.tar.gz
[edit]
[-] .cache.tar.gz
[edit]
[-] accordion.tar
[edit]
[-] 96c7d72c8c08896822dad9954f83908e44889a.tar
[edit]
[-] cur.zip
[edit]
[-] 2025.tar
[edit]
[-] class-wp-comment.php.php.tar.gz
[edit]
[-] compat.php.tar
[edit]
[-] social-links.zip
[edit]
[-] hoverIntent.min.js.tar
[edit]
[-] 1e103325208e3f08.tar
[edit]
[-] services.tar
[edit]
[-] 2ea091a9403022c4.tar.gz
[edit]
[-] 1a374d78edb8f330.tar
[edit]
[-] ms-functions.php.php.tar.gz
[edit]
[-] wp-embed.min.js.min.js.tar.gz
[edit]
[-] verse.tar
[edit]
[-] class-wp-post.php.tar
[edit]
[-] sitepad.php.php.tar.gz
[edit]
[-] 1eb8c84fc024827d.tar
[edit]
[-] site-tagline.zip
[edit]
[-] d66dfa3f.tar
[edit]
[-] 6267590363f864c5eee84f69e2ef2e4f118726.tar.gz
[edit]
[-] a.tar
[edit]
[-] class-wp-widget.php.tar
[edit]
[-] readfile.awk.awk.tar.gz
[edit]
[-] e8a380a180e0e7747ffc1cd1942907d2b8285f.tar.gz
[edit]
[-] akismet.tar
[edit]
[-] stars-2x.png.tar
[edit]
[-] a0849bfa8dce24af83853b4cf32a2140d7486e.tar
[edit]
[-] press-this.php.php.tar.gz
[edit]
[-] sparc64v-linux.zip
[edit]
[-] 99334cb39c64c990ace0079d65f4d0dedca776.tar.gz
[edit]
[-] page-list.tar
[edit]
[-] theme.min.css.tar
[edit]
[-] ebad920f48d82fac376357b866ae2f9eeb8b37.tar.gz
[edit]
[-] 2e720c0d95d9f5bc.tar.gz
[edit]
[-] mptcp.tar
[edit]
[-] 1e4d9ecb550dd22c.tar.gz
[edit]
[-] sendmail.tar.gz
[edit]
[-] crystal.tar
[edit]
[-] widgets.zip
[edit]
[-] 82a06827268f4c65.tar.gz
[edit]
[-] index.php.php.tar.gz
[edit]
[-] class-IXR-date.php.tar
[edit]
[-] awk.zip
[edit]
[-] class-wp-http-ixr-client.php.php.tar.gz
[edit]
[-] da8b9bdfcebae727ca5eef79bf4492848083f5.tar
[edit]
[-] a8a998ec43a1e0c1.tar
[edit]
[-] sess_d4a566229ecbe0024ebe16382251707d.tar
[edit]
[-] dashicons.eot.eot.tar.gz
[edit]
[-] class-wp-locale.php.tar
[edit]
[-] global-styles-and-settings.php.tar
[edit]
[-] hosts.tar
[edit]
[-] shadow.php.tar
[edit]
[-] text-columns.tar
[edit]
[-] c11d05561df3c41a.tar.gz
[edit]
[-] crop.zip
[edit]
[-] SMTP.php.php.tar.gz
[edit]
[-] 7534998f55b296da7b6cd5ef51840323ef57ef.tar.gz
[edit]
[-] wp-comments-post.php.php.tar.gz
[edit]
[-] class-wp-exception.php.php.tar.gz
[edit]
[-] blocks.tar
[edit]
[-] quicktags.js.js.tar.gz
[edit]
[-] skel.zip
[edit]
[-] underscore.min.js.tar
[edit]
[-] term-count.php.php.tar.gz
[edit]
[-] class-wp-block-bindings-source.php.php.tar.gz
[edit]
[-] 794dfe3a68bd269902403144bf2a18072c6295.tar
[edit]
[-] c78badfdcd5275ba.tar.gz
[edit]
[-] 2d08cc13938addc448bfcbf0d6f0fd2a36c672.tar
[edit]
[-] user.tar
[edit]
[-] ms-delete-site.php.tar
[edit]
[-] http.php.php.tar.gz
[edit]
[-] lve-stats.zip
[edit]
[-] l10n.php.php.tar.gz
[edit]
[-] c7869cf349142ad0.tar
[edit]
[-] c7815169f71a9851.tar.gz
[edit]
[-] admin@ediuae.com.tar
[edit]
[-] executive.tar.gz
[edit]
[-] wp-sanitize.js.js.tar.gz
[edit]
[-] index.php
[edit]
[-] IXR.zip
[edit]
[-] block-template.php.php.tar.gz
[edit]
[-] jquery-ui-dialog-rtl.css.tar
[edit]
[-] pma_template_compiles_ediuae.tar.gz
[edit]
[-] 377f8c4c739ca645.tar.gz
[edit]
[-] POP3.php.tar
[edit]
[-] class-wp-error.php.php.tar.gz
[edit]
[-] 8edc90754f31dca713e75d3a44cdf2bf38782f.tar
[edit]
[-] resellers.txt.tar
[edit]
[-] Exception.php.php.tar.gz
[edit]
[-] .caldav.tar
[edit]
[-] powersave.tar
[edit]
[-] buttons-rtl.min.css.tar
[edit]
[-] separator.tar.gz
[edit]
[-] ext4.tar.gz
[edit]
[-] twig.tar.gz
[edit]
[-] tags-suggest.js.tar
[edit]
[-] 1a374d78edb8f330.tar.gz
[edit]
[-] .softaculous.tar.gz
[edit]
[-] index.php.tar
[edit]
[-] media-rtl.min.css.tar
[edit]
[-] schema.php.tar
[edit]
[-] 1ebf0d16be96f96b.tar
[edit]
[-] shortcode.php.tar
[edit]
[-] 1ea6807835935652.tar
[edit]
[-] suggest.js.js.tar.gz
[edit]
[-] install.js.js.tar.gz
[edit]
[-] shadow.php.php.tar.gz
[edit]
[-] rss.zip
[edit]
[-] class-wp-filesystem-base.php.php.tar.gz
[edit]
[-] 639b18425d69716798fe93492a1840edcd2270.tar.gz
[edit]
[-] heartbeat.js.tar
[edit]
[-] info.zip
[edit]
[-] status.tar.gz
[edit]
[-] 992a2e00852141b7.tar
[edit]
[-] themes.min.css.min.css.tar.gz
[edit]
[-] tcl8.tar
[edit]
[-] fork.zip
[edit]
[-] 1efe84a4db395e6e.tar
[edit]
[-] 1e02cd548acda1d4.tar
[edit]
[-] categories.tar.gz
[edit]
[-] wp-load.php.php.tar.gz
[edit]
[-] admin-bar.js.tar
[edit]
[-] class-walker-nav-menu.php.tar
[edit]
[-] wplink.js.tar
[edit]
[-] media-upload.php.php.tar.gz
[edit]
[-] 1e26149ee771237d.tar
[edit]
[-] Diff.php.php.tar.gz
[edit]
[-] c4fbe_41d83_49bd6dffb546e6ce5f50a81443408692.key.key.tar.gz
[edit]
[-] spl-autoload-compat.php.tar
[edit]
[-] gimanthi@ediuae.com.tar.gz
[edit]
[-] member.zip
[edit]
[-] bubble_bg-2x.gif.gif.tar.gz
[edit]
[-] admin.php.tar
[edit]
[-] .sharing.tar
[edit]
[-] 1eb46e461ac74d68.tar.gz
[edit]
[-] pattern.tar.gz
[edit]
[-] softaculous.log.log.tar.gz
[edit]
[-] class-wp-widget-factory.php.tar
[edit]
[-] .subaccounts.zip
[edit]
[-] 2e276342bb7b12383d1c76c08972a606bb9760.tar.gz
[edit]
[-] f96d55473f1d33350e45ce82c978c8be255084.tar
[edit]
[-] .Trash.tar.gz
[edit]
[-] social-links.tar
[edit]
[-] site-title.zip
[edit]
[-] etc.tar
[edit]
[-] editor.js.js.tar.gz
[edit]
[-] storage.sqlite.sqlite.tar.gz
[edit]
[-] customize-widgets-rtl.min.css.tar
[edit]
[-] sitemaps.zip
[edit]
[-] .Junk.tar.gz
[edit]
[-] e9c28ec40d40be53775fce6a19bcae23af597d.tar
[edit]
[-] 4.tar.gz
[edit]
[-] info.tar
[edit]
[-] llms.txt.tar
[edit]
[-] elements.php.tar
[edit]
[-] services.tar.gz
[edit]
[-] plugin-install.php.tar
[edit]
[-] 7f9552db16d7d413639ad992558730297461b7.tar
[edit]
[-] .hamna@ediuae_com.tar
[edit]
[-] wp_manager.zip
[edit]
[-] class-wp-metadata-lazyloader.php.php.tar.gz
[edit]
[-] browser.png.tar
[edit]
[-] post-template.tar.gz
[edit]
[-] 1e100a079706a69d.tar
[edit]
[-] class-wp-importer.php.php.tar.gz
[edit]
[-] themes.php.tar
[edit]
[-] input.tar
[edit]
[-] site-logo.tar.gz
[edit]
[-] litespeed.tar.gz
[edit]
[-] au_backups.php.php.tar.gz
[edit]
[-] 304d86ae9a68319503d43983970359e04c7d77.tar.gz
[edit]
[-] theme.json.json.tar.gz
[edit]
[-] ea_php_cli.pm.pm.tar.gz
[edit]
[-] dovecot.index.log.tar
[edit]
[-] post-author-name.php.php.tar.gz
[edit]
[-] c11d05561df3c41a.tar
[edit]
[-] 495132644cfc1ec472a2351f99db9e88ec86be.tar.gz
[edit]
[-] comments.php.php.tar.gz
[edit]
[-] a65054b73bae515365102da8c794dfa58930a1.tar
[edit]
[-] certs.tar.gz
[edit]
[-] 1eaf03907d13ed4f.tar
[edit]
[-] eventum.zip
[edit]
[-] customize-models.min.js.min.js.tar.gz
[edit]
[-] Auth.zip
[edit]
[-] class-wp-customize-panel.php.tar
[edit]
[-] colibri.tar
[edit]
[-] 14ee25fb5be57303344c7a6aca6a4601178c98.tar
[edit]
[-] 67077ae55d33e89943244a99053982ce5c5c1d.tar.gz
[edit]
[-] ms-upgrade-network.php.tar
[edit]
[-] 2ea5ff7520225aa8d9052e6faf8ae271ed2e05.tar
[edit]
[-] 072e186dd76f1ede3d019d2897349a33c77b36.tar
[edit]
[-] 2.zip
[edit]
[-] sodium_compat.zip
[edit]
[-] 19a80e618a21d0a8e7b8f2d925fb755e0a206b.tar.gz
[edit]
[-] media-grid.js.js.tar.gz
[edit]
[-] e8159f38e99925f68b391b9ee28af1d75ba308.tar.gz
[edit]
[-] ea_php_cli.pm.tar
[edit]
[-] editor-expand.min.js.min.js.tar.gz
[edit]
[-] b82a95d89cc219ff749005c7985f644dbe51ea.tar.gz
[edit]
[-] export-personal-data.php.php.tar.gz
[edit]
[-] d66dfa3f.tar.gz
[edit]
[-] a65054b73bae515365102da8c794dfa58930a1.tar.gz
[edit]
[-] date.php.tar
[edit]
[-] custom-header.php.php.tar.gz
[edit]
[-] 47f485bc45f0055dc56792a1cb8d1357b090bf.tar
[edit]
[-] wp-emoji.min.js.min.js.tar.gz
[edit]
[-] search.php.php.tar.gz
[edit]
[-] media.min.js.tar
[edit]
[-] code-editor-rtl.css.css.tar.gz
[edit]
[-] theme.min.js.min.js.tar.gz
[edit]
[-] envo-royal.zip
[edit]
[-] query.tar
[edit]
[-] wp-diff.php.php.tar.gz
[edit]
[-] admin-functions.php.php.tar.gz
[edit]
[-] freedom-3.svg.tar
[edit]
[-] 708750fc874605ec6ee3265892a3bbdf4c13f3.tar
[edit]
[-] installations.php.php.tar.gz
[edit]
[-] 8e72685167de604e.tar.gz
[edit]
[-] .info@accubooksuae_com.tar.gz
[edit]
[-] clipboard.min.js.tar
[edit]
[-] rest-api.tar
[edit]
[-] colorpicker.min.js.min.js.tar.gz
[edit]
[-] 47b8f7979a8b3d16d7b82f9579b745d6893f0d.tar.gz
[edit]
[-] 0497695a681fc0a5169a8d2c492f16f64208f5.tar
[edit]
[-] 19a80e618a21d0a8e7b8f2d925fb755e0a206b.tar
[edit]
[-] fec5ce16069bf1a4af0eaf90995a8c09c7d55a.tar
[edit]
[-] video.php.tar
[edit]
[-] wp-util.min.js.min.js.tar.gz
[edit]
[-] align-center.png.png.tar.gz
[edit]
[-] html.zip
[edit]
[-] ms-load.php.php.tar.gz
[edit]
[-] cea50880d6e9c782127ad0c3111d7be2be95de.tar
[edit]
[-] ms-site.php.tar
[edit]
[-] b2c1f3062a8434af09718fe0278ffb01e6b38e.tar.gz
[edit]
[-] privacy.svg.svg.tar.gz
[edit]
[-] crop.tar.gz
[edit]
[-] spinner.gif.tar
[edit]
[-] 9da55849c98b4373f87c792d7341251e4084b4.tar
[edit]
[-] version.php.tar
[edit]
[-] class-wp-posts-list-table.php.tar
[edit]
[-] comments.tar.gz
[edit]
[-] media-new.php.tar
[edit]
[-] term-name.php.php.tar.gz
[edit]
[-] eliteroyalcrown.com.zip
[edit]
[-] getid3.php.php.tar.gz
[edit]
[-] class-wp-user-query.php.tar
[edit]
[-] plugin.php.php.tar.gz
[edit]
[-] .razor.zip
[edit]
[-] query-title.zip
[edit]
[-] tags-box.js.tar
[edit]
[-] fontconfig.zip
[edit]
[-] ediuae.tar.gz
[edit]
[-] sitepad.php.tar
[edit]
[-] 2026.zip
[edit]
[-] cgi-bin.zip
[edit]
[-] 4b315819fdb7d4d7e31bd11280c570c081de09.tar.gz
[edit]
[-] underscore.js.js.tar.gz
[edit]
[-] functions.wp-scripts.php.tar
[edit]
[-] thickbox.zip
[edit]
[-] class-wp-http-streams.php.php.tar.gz
[edit]
[-] user.zip
[edit]
[-] sitemaps.tar
[edit]
[-] ppc8560-linux.tar.gz
[edit]
[-] autoloader.php.tar
[edit]
[-] 1e8eb1ab240c6012.tar
[edit]
[-] buttons.css.tar
[edit]
[-] f.zip
[edit]
[-] menu.png.tar
[edit]
[-] Cache.tar
[edit]
[-] 1ea7540a00d2f149.tar.gz
[edit]
[-] a8d5db8dcc7e53fe.tar
[edit]
[-] wpspin_light.gif.tar
[edit]
[-] wp-embed-template.min.css.tar
[edit]
[-] 3b27f4fb2c9ac86219e8c60039074dcd2c9cb4.tar
[edit]
[-] arrow-pointer-blue.png.png.tar.gz
[edit]
[-] class-core-upgrader.php.tar
[edit]
[-] class-wp-rest-response.php.php.tar.gz
[edit]
[-] .last.inodes.last.inodes.tar.gz
[edit]
[-] align-right.png.tar
[edit]
[-] Jcrop.gif.gif.tar.gz
[edit]
[-] nux.zip
[edit]
[-] style-engine.tar
[edit]
[-] farbtastic-rtl.min.css.tar
[edit]
[-] 5b7.tar.gz
[edit]
[-] 1e603af083a20f1e.tar.gz
[edit]
[-] accordion.php.tar
[edit]
[-] vcards.tar
[edit]
[-] pomo.zip
[edit]
[-] f7ca106ab356b7bb69126633280aa79598d88b.tar.gz
[edit]
[-] dovecot-uidvalidity.6820ab00.6820ab00.tar.gz
[edit]
[-] 072e186dd76f1ede3d019d2897349a33c77b36.tar.gz
[edit]
[-] irq.zip
[edit]
[-] widgets.php.php.tar.gz
[edit]
[-] a83d93e3e1fa4ac6.tar.gz
[edit]
[-] components.tar
[edit]
[-] freeform.zip
[edit]
[-] 24441843f1c516ed57424d326ed9a958923943.tar.gz
[edit]
[-] awstats092025.accubooksuae.com.ediuae.com.txt.tar
[edit]
[-] comment-reply.min.js.min.js.tar.gz
[edit]
[-] 8e2b72ff5125886c.tar.gz
[edit]
[-] lockd.zip
[edit]
[-] 1c6287d174e2dc79.tar
[edit]
[-] 96f33b4d6f2f8ec1.tar
[edit]
[-] embed-template.php.tar
[edit]
[-] 9d71552ea4516ef6.tar
[edit]
[-] 468671541d6ace4da24f164b0706e8aec135a5.tar
[edit]
[-] etc.zip
[edit]
[-] block-patterns.tar.gz
[edit]
[-] OAuth.php.tar
[edit]
[-] c4fbe_41d83_49bd6dffb546e6ce5f50a81443408692.key.tar
[edit]
[-] freedom-4.svg.svg.tar.gz
[edit]
[-] error-protection.php.php.tar.gz
[edit]
[-] da36b04d027929221bbcab8cbe562a80d984ec.tar
[edit]
[-] 0497695a681fc0a5169a8d2c492f16f64208f5.tar.gz
[edit]
[-] install.js.tar
[edit]
[-] ms-themes-reference.php.tar
[edit]
[-] media-editor.js.js.tar.gz
[edit]
[-] langs.tar
[edit]
[-] menu-header.php.tar
[edit]
[-] alt-nodejs9_native.req.req.tar.gz
[edit]
[-] gcrypt.tar
[edit]
[-] plupload.tar.gz
[edit]
[-] deprecated-media-rtl.min.css.tar
[edit]
[-] class-custom-image-header.php.php.tar.gz
[edit]
[-] Requests.tar.gz
[edit]
[-] 1e603af083a20f1e.tar
[edit]
[-] svg-painter.min.js.min.js.tar.gz
[edit]
[-] button.tar.gz
[edit]
[-] wpspin_light.gif.gif.tar.gz
[edit]
[-] qtoa.tar.gz
[edit]
[-] dovecot.index.tar
[edit]
[-] a9dfba4974c6d64c.tar.gz
[edit]
[-] wp-ajax-response.min.js.min.js.tar.gz
[edit]
[-] language-chooser.js.js.tar.gz
[edit]
[-] deprecated-media-rtl.css.tar
[edit]
[-] help.zh_TW.txt.tar
[edit]
[-] 806a94a4996f13523dddc75423075a501d4149.tar
[edit]
[-] widgets.min.css.min.css.tar.gz
[edit]
[-] a8054ef7321ae3677e9d96fef98501715372c7.tar.gz
[edit]
[-] hr.zip
[edit]
[-] class-plugin-upgrader.php.tar
[edit]
[-] imgareaselect.tar
[edit]
[-] .cpanel_vcf_import_gimanthi@ediuae.com.tar
[edit]
[-] 9a0a33b0bc9bdae9.tar
[edit]
[-] man.tar
[edit]
[-] media-models.js.js.tar.gz
[edit]
[-] preformatted.tar
[edit]
[-] 1f9728f8e6adf9ad.tar.gz
[edit]
[-] c78badfdcd5275ba.tar
[edit]
[-] link-template.php.tar
[edit]
[-] media.tar.gz
[edit]
[-] bfdd421cd165d922.tar.gz
[edit]
[-] media-button.png.tar
[edit]
[-] autosave.js.tar
[edit]
[-] json2.min.js.min.js.tar.gz
[edit]
[-] hamna@ediuae.com.tar.gz
[edit]
[-] 1e6849d8aeb07cd2.tar
[edit]
[-] site-icon.min.js.tar
[edit]
[-] wp-comments-post.php.tar
[edit]
[-] dynamicui.zip
[edit]
[-] xit.gif.gif.tar.gz
[edit]
[-] admin-ui.tar.gz
[edit]
[-] 7fcbb2dc873e279dce0b248cc0ea55fc44e554.tar.gz
[edit]
[-] .bash_history.tar
[edit]
[-] zikula15.tar
[edit]
[-] pattern.tar
[edit]
[-] 1ed1e4df7620d2bf.tar
[edit]
[-] class-wp-tax-query.php.tar
[edit]
[-] langs.tar.gz
[edit]
[-] .hcflag.tar
[edit]
[-] robots.txt.txt.tar.gz
[edit]
[-] datastore.zip
[edit]
[-] .bashrc.tar
[edit]
[-] user-profile.min.js.tar
[edit]
[-] a1d0099a0f5dd0a1.tar
[edit]
[-] term-name.php.tar
[edit]
[-] archives.tar.gz
[edit]
[-] softaculous_backups.tar
[edit]
[-] man.tar.gz
[edit]
[-] .Sent.zip
[edit]
[-] gallery.php.tar
[edit]
[-] class-ftp.php.tar
[edit]
[-] customize-base.min.js.tar
[edit]
[-] 9005e106117153972e3c79f8e8ec7ce9ab8736.tar
[edit]
[-] Cookie.tar
[edit]
[-] 62c6413ed02aee623ce90361644e93858d5ced.tar.gz
[edit]
[-] dovecot.list.index.list.index.tar.gz
[edit]
[-] formatting.php.php.tar.gz
[edit]
[-] de2ae_f4bbb_e29fc085b08fc678706db8561b5352bf.key.tar
[edit]
[-] theme-rtl.min.css.tar
[edit]
[-] ediuae.com.zip
[edit]
[-] w-logo-blue.png.tar
[edit]
[-] edit-comments.php.php.tar.gz
[edit]
[-] navigation-submenu.php.php.tar.gz
[edit]
[-] buttons.min.css.tar
[edit]
[-] 8e72685167de604e.tar
[edit]
[-] wp-compat.zip
[edit]
[-] ftplugin.tar.gz
[edit]
[-] a05b90570b47d587d935371275576c84d70545.tar
[edit]
[-] wordpress-logo-white.svg.tar
[edit]
[-] hosts.tar.gz
[edit]
[-] a.zip
[edit]
[-] svg-painter.min.js.tar
[edit]
[-] wp-embed-template-ie.css.tar
[edit]
[-] editor-rtl.css.css.tar.gz
[edit]
[-] robots-template.php.tar
[edit]
[-] opt0.4.zip
[edit]
[-] edit-widgets.tar
[edit]
[-] post-time-to-read.tar.gz
[edit]
[-] 2026.tar
[edit]
[-] 5dee0f913e93875f9eecfbde80e9994e2e53c9.tar.gz
[edit]
[-] customize-preview.css.css.tar.gz
[edit]
[-] atomlib.php.tar
[edit]
[-] wp-api.min.js.min.js.tar.gz
[edit]
[-] ms-admin.php.php.tar.gz
[edit]
[-] comment-reply.js.tar
[edit]
[-] list-2x.png.png.tar.gz
[edit]
[-] feed-rss2.php.tar
[edit]
[-] 968434c2cc6d7b342ab0330f42caeda2efb2b7.tar
[edit]
[-] keys.tar
[edit]
[-] meta-boxes.php.php.tar.gz
[edit]
[-] setup-config.php.php.tar.gz
[edit]
[-] media-rtl.min.css.min.css.tar.gz
[edit]
[-] buttons-rtl.css.css.tar.gz
[edit]
[-] 96fa1ea3dd170b1a.tar
[edit]
[-] 1.txt.tar
[edit]
[-] wp-embed-template.js.tar
[edit]
[-] embed.php.php.tar.gz
[edit]
[-] readme.txt.txt.tar.gz
[edit]
[-] post.php.tar
[edit]
[-] dashboard.php.tar
[edit]
[-] help.et.txt.tar
[edit]
[-] media-upload.js.js.tar.gz
[edit]
[-] navigation.zip
[edit]
[-] cbdb0_d4ab1_1d31382d3e7d1c39f8f7e703b5bfeafa.key.tar
[edit]
[-] custom-header.php.tar
[edit]
[-] editor.min.js.min.js.tar.gz
[edit]
[-] 7db559aa3e41ebb8c0b8d010958cdfe5a383fd.tar
[edit]
[-] c4b76f67f5f9f4a9.tar
[edit]
[-] abilities-api.tar
[edit]
[-] class-wpdb.php.php.tar.gz
[edit]
[-] caches.tar
[edit]
[-] media-gallery.js.tar
[edit]
[-] shortcode.js.js.tar.gz
[edit]
[-] customize-preview.js.js.tar.gz
[edit]
[-] user-profile.js.js.tar.gz
[edit]
[-] rest-api.php.tar
[edit]
[-] nav-menu.php.php.tar.gz
[edit]
[-] edit-widgets.tar.gz
[edit]
[-] softaculous.log.tar
[edit]
[-] 1f45c9c08f34f920.tar.gz
[edit]
[-] blank.gif.tar
[edit]
[-] edit-form-comment.php.php.tar.gz
[edit]
[-] wp-api.js.js.tar.gz
[edit]
[-] 13e6f7a95ae04672dc5e454c50d1d42e45bf78.tar.gz
[edit]
[-] stars-2x.png.png.tar.gz
[edit]
[-] ssl.db.cache.tar
[edit]
[-] export.php.tar
[edit]
[-] 304d86ae9a68319503d43983970359e04c7d77.tar
[edit]
[-] default-widgets.php.php.tar.gz
[edit]
[-] xit.gif.tar
[edit]
[-] abilities.php.tar
[edit]
[-] .Junk.zip
[edit]
[-] post-terms.zip
[edit]
[-] .cl.selector.zip
[edit]
[-] 82a88bd586d2838f.tar.gz
[edit]
[-] .cache.tar
[edit]
[-] author-template.php.php.tar.gz
[edit]
[-] class-wp-http-proxy.php.tar
[edit]
[-] dist.tar
[edit]
[-] social@ediuae.com.tar
[edit]
[-] custom-background.js.js.tar.gz
[edit]
[-] info@ediuae.com.zip
[edit]
[-] about.php.php.tar.gz
[edit]
[-] status.tar
[edit]
[-] wpgallery.tar.gz
[edit]
[-] archives.zip
[edit]
[-] query.zip
[edit]
[-] a8054ef7321ae3677e9d96fef98501715372c7.tar
[edit]
[-] class-wp-theme.php.php.tar.gz
[edit]
[-] e.zip
[edit]
[-] datastore.tar
[edit]
[-] skins.zip
[edit]
[-] users.php.php.tar.gz
[edit]
[-] help.pt.txt.tar
[edit]
[-] author-template.php.tar
[edit]
[-] wp-activate.php.tar
[edit]
[-] 9d7d804042aa0287.tar.gz
[edit]
[-] post-author.php.php.tar.gz
[edit]
[-] installations.php.tar
[edit]
[-] hoverIntent.min.js.min.js.tar.gz
[edit]
[-] accubooksuae.com.tar.gz
[edit]
[-] d485d914bad3016f16589aa9bc906c6eaa38b9.tar.gz
[edit]
[-] claro.zip
[edit]
[-] feed-rss.php.tar
[edit]
[-] admin-post.php.php.tar.gz
[edit]
[-] info@agrivaingredients.com.zip
[edit]
[-] ediuae.rcube.db.1767781039.rcube.db.1767781039.tar.gz
[edit]
[-] .htaccess.tar
[edit]
[-] index.php0.tar
[edit]
[-] db1abeb63d499e7ae2d49ae4fbbec0f495e7bf.tar
[edit]
[-] style-rtl.css.css.tar.gz
[edit]
[-] lve.zip
[edit]
[-] jquery.zip
[edit]
[-] 9929491a3179bdfb.tar
[edit]
[-] list.tar.gz
[edit]
[-] date-button.gif.tar
[edit]
[-] media-views.js.js.tar.gz
[edit]
[-] post-excerpt.tar.gz
[edit]
[-] media-button.png.png.tar.gz
[edit]
[-] test.ediuae.com.tar
[edit]
[-] 6e5.tar
[edit]
[-] smilies.tar
[edit]
[-] tinymce.zip
[edit]
[-] wp-cron.php.tar
[edit]
[-] customize-widgets.css.css.tar.gz
[edit]
[-] style-rtl.min.css.min.css.tar.gz
[edit]
[-] nav-menu.min.js.min.js.tar.gz
[edit]
[-] class-wp-theme-json-resolver.php.tar
[edit]
[-] themes.zip
[edit]
[-] 9631590b17e830a2.tar
[edit]
[-] buttons.zip
[edit]
[-] crystal.tar.gz
[edit]
[-] d78d19556cef9a783c6d04b1d7a4b53d875643.tar
[edit]
[-] PHPMailer.tar.gz
[edit]
[-] admin@ediuae.com.zip
[edit]
[-] 1e32484a1cfcb2fe.tar.gz
[edit]
[-] async-upload.php.tar
[edit]
[-] wpspin-2x.gif.gif.tar.gz
[edit]
[-] verse.zip
[edit]
[-] image-edit.js.js.tar.gz
[edit]
[-] js.zip
[edit]
[-] f74606b785778221f16906d9d6afa22c886f47.tar
[edit]
[-] tw-sack.js.tar
[edit]
[-] html.tar
[edit]
[-] edit-tags.php.php.tar.gz
[edit]
[-] thickbox.tar.gz
[edit]
[-] resellers.txt.txt.tar.gz
[edit]
[-] kcare.zip
[edit]
[-] query-total.tar
[edit]
[-] SimplePie.tar
[edit]
[-] php-compat.tar
[edit]
[-] my-sites.php.php.tar.gz
[edit]
[-] logs.tar.gz
[edit]
[-] script-loader.php.tar
[edit]
[-] softaculous_backups.tar.gz
[edit]
[-] block-supports.tar
[edit]
[-] wp-admin.zip
[edit]
[-] read-more.php.tar
[edit]
[-] accelerator-performance.tar
[edit]
[-] SMTP.php.tar
[edit]
[-] 2eaad13bb4f12dfb.tar
[edit]
[-] backbone.js.tar
[edit]
[-] l10n-rtl.min.css.tar
[edit]
[-] session.php.php.tar.gz
[edit]
[-] c1cbd4fefa32a561a0320f475f49b749eb41b1.tar
[edit]
[-] .admin@ediuae_com.zip
[edit]
[-] .info@accubooksuae_com.zip
[edit]
[-] 1ef9f4f72bc25426.tar.gz
[edit]
[-] media.js.tar
[edit]
[-] images.tar.gz
[edit]
[-] images.tar
[edit]
[-] autoconf.tar
[edit]
[-] wp-auth-check.js.js.tar.gz
[edit]
[-] backups.tar
[edit]
[-] ff46a268e6e5d545e3e009db7e2b8ea03225ea.tar
[edit]
[-] autosave.js.js.tar.gz
[edit]
[-] .info@nakaafi_com.tar
[edit]
[-] dashicons.svg.svg.tar.gz
[edit]
[-] file.tar
[edit]
[-] a796755c2d4ef8ab753479cea5ae5bf41be3ef.tar.gz
[edit]
[-] ediuae.rcube.db.1768301805.tar
[edit]
[-] user-profile.min.js.min.js.tar.gz
[edit]
[-] hoverIntent.js.js.tar.gz
[edit]
[-] themes.css.tar
[edit]
[-] imf865ac.zip
[edit]
[-] term.php.php.tar.gz
[edit]
[-] smilies.tar.gz
[edit]
[-] common.js.tar
[edit]
[-] 24441843f1c516ed57424d326ed9a958923943.tar
[edit]
[-] 1cfc0a80919059b2dbf1e2b3d12a2aaa8b8d53.tar
[edit]
[-] list-item.zip
[edit]
[-] vimrc.tar.gz
[edit]
[-] php-compat.tar.gz
[edit]
[-] class-wp-query.php.php.tar.gz
[edit]
[-] api-request.min.js.tar
[edit]
[-] abilities.php.php.tar.gz
[edit]
[-] wordpress.tar.gz
[edit]
[-] customize.php.tar
[edit]
[-] da8b9bdfcebae727ca5eef79bf4492848083f5.tar.gz
[edit]
[-] d2efa3ec36766bd60045332b5dbe1679b6f025.tar
[edit]
[-] wp-pointer-rtl.min.css.min.css.tar.gz
[edit]
[-] e1609972c77db65b3a180af1653f061781c190.tar.gz
[edit]
[-] verse.tar.gz
[edit]
[-] post-author-biography.tar
[edit]
[-] class-wp-sitemaps.php.php.tar.gz
[edit]
[-] ms-blogs.php.tar
[edit]
[-] d1279ea7af995095f7ad51435fe592934475a0.tar
[edit]
[-] utf8encodings.zip
[edit]
[-] c6b2b_a1d63_01bdca151198871b95f7b7a36eae4652.key.tar
[edit]
[-] providers.tar
[edit]
[-] dashboard.min.js.min.js.tar.gz
[edit]
[-] awstats112025.accubooksuae.com.ediuae.com.txt.tar
[edit]
[-] mu-plugins.zip
[edit]
[-] deprecated-media.min.css.min.css.tar.gz
[edit]
[-] quote.zip
[edit]
[-] wp.26_59584.2026-03-05_15-03-49.tar
[edit]
[-] 9.tar
[edit]
[-] .184a94671617d030554ede9891040720f48dcfeda.184a94671617d030554ede9891040720f48dcfeda.tar.gz
[edit]
[-] grub.tar
[edit]
[-] .Archive.tar
[edit]
[-] media.php.php.tar.gz
[edit]
[-] privacy.svg.tar
[edit]
[-] deprecated.php.tar
[edit]
[-] revision.php.php.tar.gz
[edit]
[-] post-new.php.tar
[edit]
[-] media-button-music.gif.gif.tar.gz
[edit]
[-] 13970c361ccb0a76f43a8823db4ebcad3bb618.tar
[edit]
[-] tuned.conf.tar
[edit]
[-] .info@nakaafi_com.tar.gz
[edit]
[-] theme-previews.php.tar
[edit]
[-] tmp.zip
[edit]
[-] customize-widgets.js.tar
[edit]
[-] 1ebd949c10cfb8c1.tar
[edit]
[-] site-themes.php.php.tar.gz
[edit]
[-] wp-db.php.tar
[edit]
[-] heading.tar
[edit]
[-] widget-group.tar
[edit]
[-] 47b8f7979a8b3d16d7b82f9579b745d6893f0d.tar
[edit]
[-] site-logo.php.php.tar.gz
[edit]
[-] 9d7524a7bf862c4b.tar.gz
[edit]
[-] 2ea091a9403022c4.tar
[edit]
[-] cur.tar.gz
[edit]
[-] abi.tar
[edit]
[-] calendar.tar
[edit]
[-] .spam.tar
[edit]
[-] 1e6036d3eee9343b.tar.gz
[edit]
[-] wp-util.js.tar
[edit]
[-] 1ebd169bdb7975b2.tar.gz
[edit]
[-] misc.tar.gz
[edit]
[-] customize-controls-rtl.min.css.min.css.tar.gz
[edit]
[-] litespeed.tar
[edit]
[-] media-template.php.php.tar.gz
[edit]
[-] class-walker-page.php.php.tar.gz
[edit]
[-] XQxWYb.mpeg.tar
[edit]
[-] wp-pointer.css.tar
[edit]
[-] wp-auth-check-rtl.min.css.min.css.tar.gz
[edit]
[-] gallery.php.php.tar.gz
[edit]
[-] erase-personal-data.php.tar
[edit]
[-] clipboard.js.tar
[edit]
[-] update.php.tar
[edit]
[-] block-patterns.php.tar
[edit]
[-] class-wp-block-list.php.php.tar.gz
[edit]
[-] nvdata.cache.cache.tar.gz
[edit]
[-] class-avif-info.php.php.tar.gz
[edit]
[-] tw-sack.js.js.tar.gz
[edit]
[-] wp-activate.php.php.tar.gz
[edit]
[-] video.tar
[edit]
[-] network.tar.gz
[edit]
[-] plecd349.zip
[edit]
[-] f82f22b47e35818c29374eba593b845a755a12.tar
[edit]
[-] comment.php.tar
[edit]
[-] editor-rtl.min.css.min.css.tar.gz
[edit]
[-] auth-app.min.js.tar
[edit]
[-] sodium_compat.tar
[edit]
[-] sodium_compat.tar.gz
[edit]
[-] 1e3f417b45551a7f.tar.gz
[edit]
[-] my-sites.php.tar
[edit]
[-] gallery.tar.gz
[edit]
[-] class-wpdb.php.tar
[edit]
[-] pomo.tar
[edit]
[-] executive.tar
[edit]
[-] 87b24c43f6f205a76ec81845d6ca737fef1c49.tar
[edit]
[-] post-time-to-read.zip
[edit]
[-] accordion-heading.tar.gz
[edit]
[-] 1e4fc85814700dce.tar
[edit]
[-] .hcflag.hcflag.tar.gz
[edit]
[-] sendmail.log.tar
[edit]
[-] code-editor.min.css.tar
[edit]
[-] .Sent.tar.gz
[edit]
[-] 1b9c6a3d89769db77718e483479060b21d4258.tar
[edit]
[-] site-health.min.js.tar
[edit]
[-] 1e6d0c611b8741d8.tar.gz
[edit]
[-] 1c67aa57af20ce09c989aac732ace054b48232.tar
[edit]
[-] class-wp-scripts.php.tar
[edit]
[-] maildirfolder.tar.gz
[edit]
[-] f74606b785778221f16906d9d6afa22c886f47.tar.gz
[edit]
[-] image.zip
[edit]
[-] options-reading.php.tar
[edit]
[-] 1eb7682a638edbbe.tar
[edit]
[-] ssl.db.cache.db.cache.tar.gz
[edit]
[-] column.zip
[edit]
[-] block-template-utils.php.tar
[edit]
[-] options-permalink.php.tar
[edit]
[-] wpvivid_staging.tar.gz
[edit]
[-] freedoms.php.tar
[edit]
[-] underscore.js.tar
[edit]
[-] block-template-utils.php.php.tar.gz
[edit]
[-] editor-expand.js.js.tar.gz
[edit]
[-] inline-edit-post.js.tar
[edit]
[-] 2eafe002566c047f.tar.gz
[edit]
[-] nvdata.cache.tar
[edit]
[-] post-formats.png.png.tar.gz
[edit]
[-] image.tar.gz
[edit]
[-] footnotes.tar.gz
[edit]
[-] class-json.php.tar
[edit]
[-] site-editor.php.tar
[edit]
[-] nav-menus.min.css.tar
[edit]
[-] cagefs.zip
[edit]
[-] .Drafts.zip
[edit]
[-] e8a380a180e0e7747ffc1cd1942907d2b8285f.tar
[edit]
[-] word-count.min.js.tar
[edit]
[-] style-engine.zip
[edit]
[-] servers.catalogue.lst.tar
[edit]
[-] gcrypt.tar.gz
[edit]
[-] razor-agent.log.tar
[edit]
[-] license.txt.tar
[edit]
[-] tmp.tar.gz
[edit]
[-] nav-menus.php.php.tar.gz
[edit]
[-] editor.min.css.tar
[edit]
[-] class-wp-editor.php.php.tar.gz
[edit]
[-] edit-comments.js.js.tar.gz
[edit]
[-] 64d02af54c83a8437f3824b08ab4e2c5cd3110.tar
[edit]
[-] laravel.tar.gz
[edit]
[-] post-featured-image.php.php.tar.gz
[edit]
[-] sess_d4a566229ecbe0024ebe16382251707d.tar.gz
[edit]
[-] c76fd22d7c564159.tar.gz
[edit]
[-] menu.png.png.tar.gz
[edit]
[-] buddhi@ediuae.com.tar
[edit]
[-] formatting.php.tar
[edit]
[-] acpi.tar.gz
[edit]
[-] cropper.css.tar
[edit]
[-] .info@agrivaingredients_com.tar
[edit]
[-] class-wp-locale.php.php.tar.gz
[edit]
[-] awstats.tar
[edit]
[-] cache-compat.php.php.tar.gz
[edit]
[-] wordpress.tar
[edit]
[-] class-wp-http.php.tar
[edit]
[-] wp-signup.php.php.tar.gz
[edit]
[-] freedom-4.svg.tar
[edit]
[-] user_prefs.tar.gz
[edit]
[-] 1ea42681646eb11c.tar.gz
[edit]
[-] code-editor.min.js.min.js.tar.gz
[edit]
[-] includes.tar.gz
[edit]
[-] options-writing.php.tar
[edit]
[-] post-formats-vs.png.png.tar.gz
[edit]
[-] fonts.zip
[edit]
[-] wp-auth-check-rtl.css.tar
[edit]
[-] class-IXR-value.php.php.tar.gz
[edit]
[-] 378ba9a938ad0e4c.tar
[edit]
[-] awstats.tar.gz
[edit]
[-] buttons-rtl.min.css.min.css.tar.gz
[edit]
[-] 596650cd772740061a54238559c7b1ed0234c1.tar.gz
[edit]
[-] wp-content.zip
[edit]
[-] class-wp-http-ixr-client.php.tar
[edit]
[-] separator.tar
[edit]
[-] charmap.tar
[edit]
[-] e063adc97288c46439c67917c8313e8194f939.tar.gz
[edit]
[-] accordion.js.js.tar.gz
[edit]
[-] 87b24c43f6f205a76ec81845d6ca737fef1c49.tar.gz
[edit]
[-] 28278d64955ca9042973e55e9d32422191105e.tar.gz
[edit]
[-] link.php.tar
[edit]
[-] 5127124cd44a3302d19bb3aae6f7b5961660d2.tar
[edit]
[-] classic-themes.css.css.tar.gz
[edit]
[-] 84123d334bf07441f825cebb164e72d9af9b43.tar
[edit]
[-] Requests.tar
[edit]
[-] error_log
[edit]
[-] block.tar
[edit]
[-] admin-menu-rtl.css.css.tar.gz
[edit]
[-] utils.min.js.min.js.tar.gz
[edit]
[-] Text.tar.gz
[edit]
[-] dolph.zip
[edit]
[-] dovecot-uidvalidity.678dfe6f.tar
[edit]
[-] zsh.tar
[edit]
[-] 1eac40ad0f1a599e.tar
[edit]
[-] .gemrc.tar
[edit]
[-] ms-options.php.tar
[edit]
[-] block-bindings.php.tar
[edit]
[-] e5f6554b2427947517ef054ff0d0ac5e336ba2.tar.gz
[edit]
[-] class-wp-block-supports.php.tar
[edit]
[-] quote.tar
[edit]
[-] .hr@ediuae_com.tar.gz
[edit]
[-] 2a2ef403ce04451a0f9d0b232df2fd8a67df1c.tar.gz
[edit]
[-] clone.php.tar
[edit]
[-] robots.txt.tar
[edit]
[-] wordpress-logo.png.tar
[edit]
[-] subscriptions.tar.gz
[edit]
[-] setup-config.php.tar
[edit]
[-] assets.tar
[edit]
[-] post-comments-link.tar.gz
[edit]
[-] bookmark.php.php.tar.gz
[edit]
[-] block.json.json.tar.gz
[edit]
[-] theme-compat.tar.gz
[edit]
[-] 1eb46e461ac74d68.tar
[edit]
[-] class-wp-site-query.php.php.tar.gz
[edit]
[-] a1d0099a0f5dd0a1.tar.gz
[edit]
[-] class-wp-oembed-controller.php.php.tar.gz
[edit]
[-] .spamassassinboxenable.tar
[edit]
[-] plugins.tar
[edit]
[-] forms-rtl.css.tar
[edit]
[-] block-bindings.php.php.tar.gz
[edit]
[-] 1e21063c18165f20.tar
[edit]
[-] post-content.tar
[edit]
[-] accordion.php.php.tar.gz
[edit]
[-] fscache.tar.gz
[edit]
[-] theme-i18n.json.tar
[edit]
[-] elgg3.zip
[edit]
[-] comment-date.tar
[edit]
[-] class-wp-theme-json.php.php.tar.gz
[edit]
[-] options-media.php.tar
[edit]
[-] c74d0c7e84605083.tar.gz
[edit]
[-] erase-personal-data.php.php.tar.gz
[edit]
[-] Parse.zip
[edit]
[-] c6b2b_a1d63_01bdca151198871b95f7b7a36eae4652.key.key.tar.gz
[edit]
[-] dovecot-uidvalidity.tar
[edit]
[-] 481d84a2d9772bfa0f57e2a4c6bfb7a7420680.tar.gz
[edit]
[-] 377f8c4c739ca645.tar
[edit]
[-] ms-network.php.php.tar.gz
[edit]
[-] PHPMailer.zip
[edit]
[-] c4b76f67f5f9f4a9.tar.gz
[edit]
[-] feed.php.tar
[edit]
[-] admin-header.php.tar
[edit]
[-] shortcode.min.js.tar
[edit]
[-] 5.tar
[edit]
[-] 408a37fba7c01ea3bfc653d7b46078a1d7233a.tar
[edit]
[-] 09b2c1ddfdb628a85970f411c7e5c6ffa1711a.tar.gz
[edit]
[-] 8.zip
[edit]
[-] 1eb8c84fc024827d.tar.gz
[edit]
[-] rest-api.php.php.tar.gz
[edit]
[-] l10n.tar
[edit]
[-] capabilities.php.php.tar.gz
[edit]
[-] interactivity-api.zip
[edit]
[-] wp-api.min.js.tar
[edit]
[-] site-logo.php.tar
[edit]
[-] edit-form-advanced.php.php.tar.gz
[edit]
[-] feed-rss2-comments.php.tar
[edit]
[-] utils.js.tar
[edit]
[-] backbone.min.js.min.js.tar.gz
[edit]
[-] 3f1c82b95f9744a00f89306797e6811823ffbf.tar
[edit]
[-] freedom-1.svg.svg.tar.gz
[edit]
[-] autosave.min.js.min.js.tar.gz
[edit]
[-] c0b8e_2dfd3_04829d753c4d20b6f9e5ef8b65b574c1.key.tar
[edit]
[-] IXR.tar.gz
[edit]
[-] wp-custom-header.min.js.min.js.tar.gz
[edit]
[-] comments.php.tar
[edit]
[-] js.tar
[edit]
[-] class-IXR-error.php.php.tar.gz
[edit]
[-] 1e57c15dac52221e.tar
[edit]
[-] 1ea7540a00d2f149.tar
[edit]
[-] loading.gif.gif.tar.gz
[edit]
[-] dovecot-quota.tar.gz
[edit]
[-] info@nakaafi.com.tar
[edit]
[-] view.asset.php.tar
[edit]
[-] 04af8c407d434998f09c73d128aceac7b677ed.tar
[edit]
[-] site-icon.min.css.tar
[edit]
[-] template-loader.php.tar
[edit]
[-] revision.php.tar
[edit]
[-] 462333483c8a98bc6c303929e22225dc93a9e2.tar.gz
[edit]
[-] customize-preview.js.tar
[edit]
[-] clipboard.min.js.min.js.tar.gz
[edit]
[-] style-rtl.css.tar
[edit]
[-] 13970c361ccb0a76f43a8823db4ebcad3bb618.tar.gz
[edit]
[-] class-wp-session-tokens.php.tar
[edit]
[-] nakaafi.com.zip
[edit]
[-] tinymce.tar.gz
[edit]
[-] ms-blogs.php.php.tar.gz
[edit]
[-] blank.gif.gif.tar.gz
[edit]
[-] 8e76f82b8ac41680.tar
[edit]
[-] view.min.asset.php.min.asset.php.tar.gz
[edit]
[-] ediuae.rcube.db.rcube.db.tar.gz
[edit]
[-] Diff.php.tar
[edit]
[-] plupload.tar
[edit]
[-] ediuae.rcube.db.1772035248.tar
[edit]
[-] wp-embed-template-ie.css.css.tar.gz
[edit]
[-] site-tagline.tar
[edit]
[-] xit-2x.gif.tar
[edit]
[-] fileindex.php.php.tar.gz
[edit]
[-] 865a5d7d427f9c3e206d1b546e8daa581dce29.tar
[edit]
[-] 1e317d2ef678267b.tar.gz
[edit]
[-] word-count.min.js.min.js.tar.gz
[edit]
[-] class-wp-term.php.tar
[edit]
[-] fe79935b7825add3.tar
[edit]
[-] post-comments-link.tar
[edit]
[-] registration.php.php.tar.gz
[edit]
[-] dovecot.index.index.tar.gz
[edit]
[-] 2.tar
[edit]
[-] ms-files.php.tar
[edit]
[-] c9a9e_23523_975a19c16b389e613705a5f69c90d0c8.key.tar
[edit]
[-] term-name.tar.gz
[edit]
[-] wp-admin.tar
[edit]
[-] media-audiovideo.min.js.tar
[edit]
[-] a4b9b723b6004b512af14c834fca0d82fb3eb8.tar.gz
[edit]
[-] 606da8f45cc0cf62.tar
[edit]
[-] wpicons-2x.png.png.tar.gz
[edit]
[-] .spamassassinboxenable.spamassassinboxenable.tar.gz
[edit]
[-] class-wp-http-encoding.php.tar
[edit]
[-] archives.tar
[edit]
[-] xb89c12.tar
[edit]
[-] c7492de69395967e.tar.gz
[edit]
[-] lib.php.tar
[edit]
[-] sysvipc.tar
[edit]
[-] 7.tar
[edit]
[-] python-cllib.tar
[edit]
[-] 1e4d9ecb550dd22c.tar
[edit]
[-] .spam.zip
[edit]
[-] term-count.tar
[edit]
[-] class-wp-http-proxy.php.php.tar.gz
[edit]
[-] deprecated-media.css.tar
[edit]
[-] 5023f4b1d28fa23c7a6e5e0e74d35f5f7415b9.tar.gz
[edit]
[-] sysvipc.tar.gz
[edit]
[-] plugin-install.php.php.tar.gz
[edit]
[-] post-date.php.tar
[edit]
[-] class-wp-upgrader-skins.php.php.tar.gz
[edit]
[-] math.tar.gz
[edit]
[-] 695cfc77440d8de8.tar
[edit]
[-] .gayan@ediuae_com.tar.gz
[edit]
[-] widgets.php.tar
[edit]
[-] moderation.php.php.tar.gz
[edit]
[-] quicktags.min.js.tar
[edit]
[-] vimrc.tar
[edit]
[-] c760685f5be4177e.tar.gz
[edit]
[-] 8e3108bc579b0069.tar.gz
[edit]
[-] post-featured-image.php.tar
[edit]
[-] media-editor.js.tar
[edit]
[-] .cagefs.zip
[edit]
[-] edit.php.tar
[edit]
[-] class-wp-http-requests-hooks.php.php.tar.gz
[edit]
[-] awstats032026.test.ediuae.com.txt.test.ediuae.com.txt.tar.gz
[edit]
[-] 53ba5a4ea4a266764162d179c3d558d634f34a.tar
[edit]
[-] 7f9552db16d7d413639ad992558730297461b7.tar.gz
[edit]
[-] class-IXR-client.php.tar
[edit]
[-] wp-includes.tar.gz
[edit]
[-] template-canvas.php.tar
[edit]
[-] media-text.tar.gz
[edit]
[-] blocks.php.tar
[edit]
[-] dovecot-uidvalidity.67fa44c0.67fa44c0.tar.gz
[edit]
[-] fields.zip
[edit]
[-] 6a6850accf6958ba8a80ac9f9a202fbb327294.tar.gz
[edit]
[-] site-icon.min.js.min.js.tar.gz
[edit]
[-] .trash.tar.gz
[edit]
[-] crop.tar
[edit]
[-] set-post-thumbnail.js.js.tar.gz
[edit]
[-] a8d5db8dcc7e53fe.tar.gz
[edit]
[-] buddhi.tar.gz
[edit]
[-] wp-backbone.js.tar
[edit]
[-] 1e9afcb5e1c380f5.tar.gz
[edit]
[-] lib.php.php.tar.gz
[edit]
[-] debug.tar
[edit]
[-] instantcms.tar
[edit]
[-] class-wp-http-requests-response.php.php.tar.gz
[edit]
[-] 20483c3bb2da5b786415d84d3b2f629899da08.tar.gz
[edit]
[-] post-excerpt.tar
[edit]
[-] media.tar
[edit]
[-] customize.zip
[edit]
[-] details.zip
[edit]
[-] image-edit.php.tar
[edit]
[-] 1efe84a4db395e6e.tar.gz
[edit]
[-] .spamassassin.zip
[edit]
[-] class-wp-locale-switcher.php.tar
[edit]
[-] e063adc97288c46439c67917c8313e8194f939.tar
[edit]
[-] site-themes.php.tar
[edit]
[-] b2c1f3062a8434af09718fe0278ffb01e6b38e.tar
[edit]
[-] 8e35eebea45acf56.tar.gz
[edit]
[-] 1e100a079706a69d.tar.gz
[edit]
[-] kbd.zip
[edit]
[-] class-pclzip.php.tar
[edit]
[-] 1e0545be341924db.tar.gz
[edit]
[-] 410abc1074.php.php.tar.gz
[edit]
[-] .Drafts.tar.gz
[edit]
[-] e.tar.gz
[edit]
[-] text-columns.zip
[edit]
[-] .Trash.tar
[edit]
[-] auth-app.js.tar
[edit]
[-] color-picker.js.tar
[edit]
[-] fafcb160932ddc8d1f25c34104040214a1ecd2.tar
[edit]
[-] 3540c33663bf5e3c86e485cae09de0d9a8a21a.tar.gz
[edit]
[-] view.js.tar
[edit]
[-] class-ftp-sockets.php.tar
[edit]
[-] OAuth.php.php.tar.gz
[edit]
[-] .hr@ediuae_com.tar
[edit]
[-] class.wp-scripts.php.wp-scripts.php.tar.gz
[edit]
[-] d.tar
[edit]
[-] wp-mail.php.tar
[edit]
[-] 9d75c21257e0187f.tar.gz
[edit]
[-] options-media.php.php.tar.gz
[edit]
[-] xfn.js.js.tar.gz
[edit]
[-] f7ca106ab356b7bb69126633280aa79598d88b.tar
[edit]
[-] dovecot-acl-list.tar
[edit]
[-] dovecot-uidvalidity.tar.gz
[edit]
[-] class-wp-token-map.php.tar
[edit]
[-] cover.zip
[edit]
[-] 1eb0e4ac5978aa93.tar.gz
[edit]
[-] class-wp-block-template.php.tar
[edit]
[-] skins.tar.gz
[edit]
[-] block.tar.gz
[edit]
[-] awstats012025.ediuae.com.txt.tar
[edit]
[-] search.php.tar
[edit]
[-] Cookie.tar.gz
[edit]
[-] widgets-form.php.tar
[edit]
[-] 28a87a0955416c45.tar.gz
[edit]
[-] Net.tar
[edit]
[-] udev.zip
[edit]
[-] wplink.js.js.tar.gz
[edit]
[-] help.hu.txt.tar
[edit]
[-] e1609972c77db65b3a180af1653f061781c190.tar
[edit]
[-] network.tar
[edit]
[-] .wget-hsts.wget-hsts.tar.gz
[edit]
[-] .metadata.tar
[edit]
[-] 1e6fa48320c90a59.tar
[edit]
[-] 9d7524a7bf862c4b.tar
[edit]
[-] class-wp-textdomain-registry.php.php.tar.gz
[edit]
[-] c.zip
[edit]
[-] menu-header.php.php.tar.gz
[edit]
[-] 495132644cfc1ec472a2351f99db9e88ec86be.tar
[edit]
[-] theme.js.js.tar.gz
[edit]
[-] cgi-bin.tar
[edit]
[-] network.php.tar
[edit]
[-] block.zip
[edit]
[-] .Archive.tar.gz
[edit]
[-] option.php.php.tar.gz
[edit]
[-] ui.tar
[edit]
[-] dovecot.list.index.log.list.index.log.tar.gz
[edit]
[-] 9c1ae89d848b481c7e15548b8e4a8bc105d363.tar.gz
[edit]
[-] admin-filters.php.php.tar.gz
[edit]
[-] Renderer.zip
[edit]
[-] 3.tar.gz
[edit]
[-] _firewalld.tar.gz
[edit]
[-] paste.tar
[edit]
[-] home-link.tar.gz
[edit]
[-] more.tar
[edit]
[-] maint.tar
[edit]
[-] .razor.tar.gz
[edit]
[-] 2a2ef403ce04451a0f9d0b232df2fd8a67df1c.tar
[edit]
[-] logs.txt.txt.tar.gz
[edit]
[-] locale.zip
[edit]
[-] snmp.zip
[edit]
[-] fields.tar
[edit]
[-] color-picker-rtl.min.css.tar
[edit]
[-] bfdd421cd165d922.tar
[edit]
[-] a4b9b723b6004b512af14c834fca0d82fb3eb8.tar
[edit]
[-] c76fd22d7c564159.tar
[edit]
[-] gayan@ediuae.com.tar
[edit]
[-] wp-pointer.min.css.tar
[edit]
[-] admin-ajax.php.tar
[edit]
[-] tags-box.min.js.min.js.tar.gz
[edit]
[-] edit.php.php.tar.gz
[edit]
[-] privacy-tools.min.js.tar
[edit]
[-] 1e317d2ef678267b.tar
[edit]
[-] class-feed.php.tar
[edit]
[-] wp-admin.min.css.min.css.tar.gz
[edit]
[-] math.tar
[edit]
[-] class-wp-block.php.tar
[edit]
[-] fe4a9761a968a58a.tar
[edit]
[-] 8c6cda8d6d9614b8.tar
[edit]
[-] ms-upgrade-network.php.php.tar.gz
[edit]
[-] ext4.tar
[edit]
[-] instantcms.tar.gz
[edit]
[-] 1eaae2292dec8b7e.tar
[edit]
[-] class-wp-textdomain-registry.php.tar
[edit]
[-] theme-previews.php.php.tar.gz
[edit]
[-] script-modules.php.tar
[edit]
[-] cea50880d6e9c782127ad0c3111d7be2be95de.tar.gz
[edit]
[-] read-more.php.php.tar.gz
[edit]
[-] 3a4c93292cf135cd8aea8e21548bf98e023d52.tar.gz
[edit]
[-] 1e8838380cbdc822.tar.gz
[edit]
[-] 8e35eebea45acf56.tar
[edit]
[-] class-wp-script-modules.php.tar
[edit]
[-] wp-embed-template.min.js.min.js.tar.gz
[edit]
[-] 408a37fba7c01ea3bfc653d7b46078a1d7233a.tar.gz
[edit]
[-] term-name.tar
[edit]
[-] block-supports.zip
[edit]
[-] class-requests.php.php.tar.gz
[edit]
[-] 68865c89d8c40ca0b45361fd5110b332bd0da9.tar
[edit]
[-] wp-backbone.js.js.tar.gz
[edit]
[-] color-picker.js.js.tar.gz
[edit]
[-] functions.wp-styles.php.wp-styles.php.tar.gz
[edit]
[-] class-wp-customize-widgets.php.php.tar.gz
[edit]
[-] media-upload.min.js.tar
[edit]
[-] backups.zip
[edit]
[-] 1eb05bee67d8769e.tar
[edit]
[-] jquery.js.js.tar.gz
[edit]
[-] backups.tar.gz
[edit]
[-] cc630a89ebb355a244e9006e9a78eb8d44df33.tar
[edit]
[-] .well-known.tar.gz
[edit]
[-] a0fac_dd909_1c378abedc6539da34b792b541115e06.key.tar
[edit]
[-] load.php.tar
[edit]
[-] edit-form-comment.php.tar
[edit]
[-] buddhi@ediuae.com.zip
[edit]
[-] image-edit.js.tar
[edit]
[-] media-audiovideo.min.js.min.js.tar.gz
[edit]
[-] colorpicker.tar.gz
[edit]
[-] 64d02af54c83a8437f3824b08ab4e2c5cd3110.tar.gz
[edit]
[-] ediuae.rcube.db.1768080265.tar
[edit]
[-] editor.css.css.tar.gz
[edit]
[-] blab.sql.sql.tar.gz
[edit]
[-] revisions.min.js.tar
[edit]
[-] spacer.tar
[edit]
[-] 04af8c407d434998f09c73d128aceac7b677ed.tar.gz
[edit]
[-] post-template.php.tar
[edit]
[-] accubooksuae.com.tar
[edit]
[-] spacer.tar.gz
[edit]
[-] hamna@ediuae.com.tar
[edit]
[-] bookmark.php.tar
[edit]
[-] agrivaingredients.com.tar.gz
[edit]
[-] edit-link-form.php.php.tar.gz
[edit]
[-] 1ed049199006a1d7.tar
[edit]
[-] da36b04d027929221bbcab8cbe562a80d984ec.tar.gz
[edit]
[-] admin-bar.css.css.tar.gz
[edit]
[-] shortcodes.php.php.tar.gz
[edit]
[-] options-head.php.tar
[edit]
[-] post-new.php.php.tar.gz
[edit]
[-] css.tar
[edit]
[-] inline-edit-post.js.js.tar.gz
[edit]
[-] hello.zip
[edit]
[-] 1e9b6fc395ae9d56.tar
[edit]
[-] .trash.tar
[edit]
[-] ID3.tar
[edit]
[-] xmlrpc.php.php.tar.gz
[edit]
[-] class-wp-widget.php.php.tar.gz
[edit]
[-] utf8encodings.tar
[edit]
[-] customize-nav-menus.css.tar
[edit]
[-] .Junk.tar
[edit]
[-] post-terms.tar
[edit]
[-] mask.png.tar
[edit]
[-] 47f485bc45f0055dc56792a1cb8d1357b090bf.tar.gz
[edit]
[-] wp-embed-template.js.js.tar.gz
[edit]
[-] dovecot.mailbox.log.mailbox.log.tar.gz
[edit]
[-] common.js.js.tar.gz
[edit]
[-] caches.tar.gz
[edit]
[-] heartbeat.min.js.tar
[edit]
[-] term-count.tar.gz
[edit]
[-] class-wp-walker.php.php.tar.gz
[edit]
[-] se.png.png.tar.gz
[edit]
[-] cropper.js.tar
[edit]
[-] deprecated-media.min.css.tar
[edit]
[-] ID3.tar.gz
[edit]
[-] 52f8a136aff70df2c25fc482a8017b91f24f39.tar
[edit]
[-] hoverIntent.js.tar
[edit]
[-] wp-mail.php.php.tar.gz
[edit]
[-] interactivity-api.tar.gz
[edit]
[-] class.wp-dependencies.php.tar
[edit]
[-] post-template.php.php.tar.gz
[edit]
[-] plugin-editor.php.tar
[edit]
[-] setup.php.tar
[edit]
[-] jquery.js.tar
[edit]
[-] widgets.tar
[edit]
[-] cropper.js.js.tar.gz
[edit]
[-] cpanel.zip
[edit]
[-] servers.discovery.lst.tar
[edit]
[-] wp-admin.tar.gz
[edit]
[-] class-wp-token-map.php.php.tar.gz
[edit]
[-] readfile.awk.tar
[edit]
[-] python3.8.tar
[edit]
[-] cache.php.php.tar.gz
[edit]
[-] Utility.tar.gz
[edit]
[-] .buddhi@ediuae_com.tar
[edit]
[-] async-upload.php.php.tar.gz
[edit]
[-] cache.php.tar
[edit]
[-] c7869cf349142ad0.tar.gz
[edit]
[-] search.zip
[edit]
[-] qtoa.tar
[edit]
[-] admin-footer.php.tar
[edit]
[-] admin-ui.tar
[edit]
[-] template-canvas.php.php.tar.gz
[edit]
[-] class-wp-session-tokens.php.php.tar.gz
[edit]
[-] media-models.js.tar
[edit]
[-] cpanel.tar.gz
[edit]
[-] wp-pointer-rtl.css.css.tar.gz
[edit]
[-] settings.php.tar
[edit]
[-] bashrc.tar.gz
[edit]
[-] 9da55849c98b4373f87c792d7341251e4084b4.tar.gz
[edit]
[-] ms-users.php.tar
[edit]
[-] widget-group.tar.gz
[edit]
[-] error_log.tar
[edit]
[-] ms-admin.php.tar
[edit]
[-] 2eaad13bb4f12dfb.tar.gz
[edit]
[-] ms-admin-filters.php.php.tar.gz
[edit]
[-] cookieadmin.zip
[edit]
[-] custom-html-widgets.js.tar
[edit]
[-] swfupload.tar.gz
[edit]
[-] 1eda01d043025413.tar
[edit]
[-] media-text.tar
[edit]
[-] options-general.php.php.tar.gz
[edit]
[-] list.tar
[edit]
[-] nextpage.zip
[edit]
[-] _firewalld.tar
[edit]
[-] dovecot.list.index.log.tar
[edit]
[-] wp-links-opml.php.tar
[edit]
[-] ff8a31e0ba1e9152b977963b6914f54b1335cf.tar
[edit]
[-] auth-app.min.js.min.js.tar.gz
[edit]
[-] capabilities.php.tar
[edit]
[-] b5af10c4791d55f2.tar.gz
[edit]
[-] theme.min.js.tar
[edit]
[-] class-IXR-base64.php.php.tar.gz
[edit]
[-] 8ba2c3d8f7103093.tar.gz
[edit]
[-] 992a2e00852141b7.tar.gz
[edit]
[-] 1eb7682a638edbbe.tar.gz
[edit]
[-] class-smtp.php.tar
[edit]
[-] class-wp-locale-switcher.php.php.tar.gz
[edit]
[-] irq.tar.gz
[edit]
[-] pearlandpetalbeautyspa.com.tar.gz
[edit]
[-] freedoms.php.php.tar.gz
[edit]
[-] clipboard.js.js.tar.gz
[edit]
[-] class-wp-error.php.tar
[edit]
[-] f32fd8a1f3849bf86a9c030112ec2ae5c91ac0.tar
[edit]
[-] HLYG.gif.gif.tar.gz
[edit]
[-] 05056baea721491ef643088763169f52e73bc1.tar
[edit]
[-] tools.php.tar
[edit]
[-] 596650cd772740061a54238559c7b1ed0234c1.tar
[edit]
[-] calendar.tar.gz
[edit]
[-] heading.tar.gz
[edit]
[-] completions.zip
[edit]
[-] 1edd6608aeb5b9b5.tar
[edit]
[-] 1ea01b3f50f1b8b9.tar.gz
[edit]
[-] 1eaa789467d646ac.tar
[edit]
[-] user.tar.gz
[edit]
[-] stars.png.png.tar.gz
[edit]
[-] general-template.php.php.tar.gz
[edit]
[-] widgets.min.css.tar
[edit]
[-] option.php.tar
[edit]
[-] block-supports.tar.gz
[edit]
[-] 2d0c2cd5bb78b725806d7732ce5aced675485d.tar.gz
[edit]
[-] colors.zip
[edit]
[-] 8e76f82b8ac41680.tar.gz
[edit]
[-] customize-controls.min.css.tar
[edit]
[-] d.tar.gz
[edit]
[-] 9d7c005f3c136772.tar
[edit]
[-] en.zip
[edit]
[-] class-wp-http-requests-response.php.tar
[edit]
[-] edit-comments.php.tar
[edit]
[-] dovecot.mailbox.log.tar
[edit]
[-] 1c6287d174e2dc79.tar.gz
[edit]
[-] 1eb05bee67d8769e.tar.gz
[edit]
[-] class-wp-site-query.php.tar
[edit]
[-] customize-widgets.css.tar
[edit]
[-] d485d914bad3016f16589aa9bc906c6eaa38b9.tar
[edit]
[-] jcrop.tar.gz
[edit]
[-] info@nakaafi.com.zip
[edit]
[-] swfobject.js.tar
[edit]
[-] class-wp-customize-setting.php.php.tar.gz
[edit]
[-] wp-db.php.php.tar.gz
[edit]
[-] user-edit.php.php.tar.gz
[edit]
[-] 1e475358290d4368.tar
[edit]
[-] Exception.php.tar
[edit]
[-] readme.html.html.tar.gz
[edit]
[-] set-post-thumbnail.js.tar
[edit]
[-] c7492de69395967e.tar
[edit]
[-] classic-themes.min.css.tar
[edit]
[-] taxonomy.php.tar
[edit]
[-] theme-rtl.css.css.tar.gz
[edit]
[-] m4sugar.zip
[edit]
[-] postbox.js.js.tar.gz
[edit]
[-] fonts.tar
[edit]
[-] roundcube.tar
[edit]
[-] fields.tar.gz
[edit]
[-] load-scripts.php.tar
[edit]
[-] 1ebf0d16be96f96b.tar.gz
[edit]
[-] info@accubooksuae.com.zip
[edit]
[-] wp-api.js.tar
[edit]
[-] class-wp-post.php.php.tar.gz
[edit]
[-] editor.css.tar
[edit]
[-] class-wp-customize-setting.php.tar
[edit]
[-] user-edit.php.tar
[edit]
[-] view.min.js.min.js.tar.gz
[edit]
[-] themes.php.php.tar.gz
[edit]
[-] 591b0.tar
[edit]
[-] customize-controls-rtl.min.css.tar
[edit]
[-] mail.zip
[edit]
[-] latest-posts.php.tar
[edit]
[-] nakaafi.com.tar.gz
[edit]
[-] 82a06827268f4c65.tar
[edit]
[-] 99334cb39c64c990ace0079d65f4d0dedca776.tar
[edit]
[-] media-views.min.js.tar
[edit]
[-] class-wp-upgrader-skins.php.tar
[edit]
[-] pearlandpetalbeautyspa.com.zip
[edit]
[-] widgets.tar.gz
[edit]
[-] user-profile.js.tar
[edit]
[-] home-link.zip
[edit]
[-] wp-links-opml.php.php.tar.gz
[edit]
[-] class-wp-styles.php.php.tar.gz
[edit]
[-] class-plugin-upgrader.php.php.tar.gz
[edit]
[-] columns.tar.gz
[edit]
[-] POP3.php.php.tar.gz
[edit]
[-] 1ef9f4f72bc25426.tar
[edit]
[-] update-core.php.tar
[edit]
[-] password-toggle.js.js.tar.gz
[edit]
[-] comment.php.php.tar.gz
[edit]
[-] 1e4fc85814700dce.tar.gz
[edit]
[-] 1e87c3e3308d5259.tar.gz
[edit]
[-] list.png.tar
[edit]
[-] link-manager.php.tar
[edit]
[-] sitemaps.php.tar
[edit]
[-] custom-background.php.tar
[edit]
[-] autoconf.zip
[edit]
[-] tag-cloud.php.php.tar.gz
[edit]
[-] customize-base.js.js.tar.gz
[edit]
[-] 2e42c91ff585bb2c.tar
[edit]
[-] awstats012026.ediuae.com.txt.ediuae.com.txt.tar.gz
[edit]
[-] hvh.txt.tar
[edit]
[-] style-engine.php.php.tar.gz
[edit]
[-] admin.php.php.tar.gz
[edit]
[-] 72399707cf3d40ec79375cb6e6d3004fd660a9.tar.gz
[edit]
[-] cm.zip
[edit]
[-] c.tar.gz
[edit]
[-] svg-painter.js.js.tar.gz
[edit]
[-] f32fd8a1f3849bf86a9c030112ec2ae5c91ac0.tar.gz
[edit]
[-] edit-link-form.php.tar
[edit]
[-] Text.zip
[edit]
[-] be8185270c0a7401f091476578c137b5dae92a.tar.gz
[edit]
[-] press-this.php.tar
[edit]
[-] code.zip
[edit]
[-] classic-themes.min.css.min.css.tar.gz
[edit]
[-] file.php.tar
[edit]
[-] class-wp.php.php.tar.gz
[edit]
[-] editor.min.js.tar
[edit]
[-] robots-template.php.php.tar.gz
[edit]
[-] 959c120bf690ea2a292e83192acb23edf406c5.tar.gz
[edit]
[-] meta.php.php.tar.gz
[edit]
[-] 1e287a76fc26e65b.tar
[edit]
[-] a796755c2d4ef8ab753479cea5ae5bf41be3ef.tar
[edit]
[-] shortcode.zip
[edit]
[-] jquery.tar
[edit]
[-] d66dfa3f.zip
[edit]
[-] deprecated-media.css.css.tar.gz
[edit]
[-] .razor.tar
[edit]
[-] fe4a9761a968a58a.tar.gz
[edit]
[-] .subaccounts.tar.gz
[edit]
[-] wp-settings.php.tar
[edit]
[-] uploads.tar
[edit]
[-] edit-comments.min.js.min.js.tar.gz
[edit]
[-] mediaelement.zip
[edit]
[-] class-snoopy.php.php.tar.gz
[edit]
[-] theme.css.tar
[edit]
[-] post-formats-vs.png.tar
[edit]
[-] ms-sites.php.tar
[edit]
[-] 82a88bd586d2838f.tar
[edit]
[-] 1e44dbc18fd8191f.tar
[edit]
[-] 68865c89d8c40ca0b45361fd5110b332bd0da9.tar.gz
[edit]
[-] html-api.tar.gz
[edit]
[-] class-wp-role.php.php.tar.gz
[edit]
[-] theme.js.tar
[edit]
[-] icals.zip
[edit]
[-] edit-comments.js.tar
[edit]
[-] navigation-submenu.php.tar
[edit]
[-] options-reading.php.php.tar.gz
[edit]
[-] new.tar
[edit]
[-] 0.tar
[edit]
[-] speculative-loading.php.php.tar.gz
[edit]
[-] class-wp-oembed.php.tar
[edit]
[-] roundcube.zip
[edit]
[-] Auth.tar
[edit]
[-] maint.zip
[edit]
[-] jquery-ui-dialog-rtl.css.css.tar.gz
[edit]
[-] avatar.tar
[edit]
[-] fitvault.ae.tar.gz
[edit]
[-] admin-bar.php.tar
[edit]
[-] 00.tar
[edit]
[-] index.php0.php0.tar.gz
[edit]
[-] abi.tar.gz
[edit]
[-] details.tar.gz
[edit]
[-] euphony-blocks.zip
[edit]
[-] 1e44dbc18fd8191f.tar.gz
[edit]
[-] taxonomy.php.php.tar.gz
[edit]
[-] 05056baea721491ef643088763169f52e73bc1.tar.gz
[edit]
[-] zikula15.tar.gz
[edit]
[-] media-grid.js.tar
[edit]
[-] fonts.tar.gz
[edit]
[-] 74e7ce32f6c0d3ed31792ca742f3acbab5e2c8.tar.gz
[edit]
[-] class-wp-block-parser-block.php.php.tar.gz
[edit]
[-] class-phpmailer.php.php.tar.gz
[edit]
[-] ms-edit.php.tar
[edit]
[-] .well-known.zip
[edit]
[-] class-core-upgrader.php.php.tar.gz
[edit]
[-] plugins.zip
[edit]
[-] block-patterns.php.php.tar.gz
[edit]
[-] 7534998f55b296da7b6cd5ef51840323ef57ef.tar
[edit]
[-] stars.png.tar
[edit]
[-] 0.tar.gz
[edit]
[-] class-wp-block.php.php.tar.gz
[edit]
[-] ediuae.rcube.db.1770204696.tar
[edit]
[-] continents-cities.php.tar
[edit]
[-] skins.tar
[edit]
[-] dovecot-uidlist.tar.gz
[edit]
[-] l10n-rtl.min.css.min.css.tar.gz
[edit]
[-] clone.php.php.tar.gz
[edit]
[-] tag-cloud.php.tar
[edit]
[-] .pramod@ediuae_com.zip
[edit]
[-] class.wp-styles.php.tar
[edit]
[-] social@ediuae.com.zip
[edit]
[-] media-button-other.gif.gif.tar.gz
[edit]
[-] footnotes.zip
[edit]
[-] Parse.tar.gz
[edit]
[-] php81.tar
[edit]
[-] install.xml.tar
[edit]
[-] xmlrpc.php.tar
[edit]
[-] 8ba2c3d8f7103093.tar
[edit]
[-] fa3dc11a2d298cdcb0a0fdd364dac228ee5bde.tar
[edit]
[-] menu-vs.png.tar
[edit]
[-] view.min.js.tar
[edit]
[-] localtime.tar
[edit]
[-] options-general.php.tar
[edit]
[-] arrows-2x.png.tar
[edit]
[-] 08.zip
[edit]
[-] canonical.php.php.tar.gz
[edit]
[-] class-wp-block-template.php.php.tar.gz
[edit]
[-] html-api.tar
[edit]
[-] media-views-rtl.min.css.min.css.tar.gz
[edit]
[-] class-wp-styles.php.tar
[edit]
[-] post-author-name.php.tar
[edit]
[-] 09.zip
[edit]
[-] ediuae.rcube.db.1768080265.rcube.db.1768080265.tar.gz
[edit]
[-] 2e794be98464c084.tar
[edit]
[-] admin-ajax.php.php.tar.gz
[edit]
[-] class-wp.php.tar
[edit]
[-] editor-expand.min.js.tar
[edit]
[-] .metadata.metadata.tar.gz
[edit]
[-] ms-edit.php.php.tar.gz
[edit]
[-] options-discussion.php.tar
[edit]
[-] pomo.tar.gz
[edit]
[-] envo-royal.tar
[edit]
[-] HLYG.gif.tar
[edit]
[-] a0a0c1ea95516704.tar.gz
[edit]
[-] buttons.min.css.min.css.tar.gz
[edit]
[-] b44c0825a1277036c6ac1724e50afc1dd35407.tar
[edit]
[-] media-views.css.css.tar.gz
[edit]
[-] class-wp-duotone.php.tar
[edit]
[-] .spam.tar.gz
[edit]
[-] 62c6413ed02aee623ce90361644e93858d5ced.tar
[edit]
[-] post-excerpt.php.php.tar.gz
[edit]
[-] term-template.tar.gz
[edit]
[-] 1e6849d8aeb07cd2.tar.gz
[edit]
[-] 1e9b6fc395ae9d56.tar.gz
[edit]
[-] caches.zip
[edit]
[-] 9d71552ea4516ef6.tar.gz
[edit]
[-] media-gallery.js.js.tar.gz
[edit]
[-] 590428a58059662c6c2e06aa268588729b2c55.tar.gz
[edit]
[-] class-wp-taxonomy.php.php.tar.gz
[edit]
[-] class-IXR-error.php.tar
[edit]
[-] 1eba388e7fd4b2b9.tar.gz
[edit]
[-] template.php.php.tar.gz
[edit]
[-] customize-nav-menus.css.css.tar.gz
[edit]
[-] 5dee0f913e93875f9eecfbde80e9994e2e53c9.tar
[edit]
[-] 1.tar
[edit]
[-] edit-tags.php.tar
[edit]
[-] update-core.php.php.tar.gz
[edit]
[-] 1e8eb1ab240c6012.tar.gz
[edit]
[-] image-edit-merge.php.php.tar.gz
[edit]
[-] image-edit.php.php.tar.gz
[edit]
[-] export.php.php.tar.gz
[edit]
[-] media-views.min.js.min.js.tar.gz
[edit]
[-] .imunify_patch_id.tar
[edit]
[-] heartbeat.min.js.min.js.tar.gz
[edit]
[-] 5023f4b1d28fa23c7a6e5e0e74d35f5f7415b9.tar
[edit]
[-] blocks.php.php.tar.gz
[edit]
[-] wp-embed-template.css.tar
[edit]
[-] wp-includes.tar
[edit]
[-] 8f1b7c.tar.gz
[edit]
[-] help.de.txt.tar
[edit]
[-] class-wp-rest-response.php.tar
[edit]
[-] dist.tar.gz
[edit]
[-] class-snoopy.php.tar
[edit]
[-] .bash_profile.tar
[edit]
[-] class-custom-background.php.php.tar.gz
[edit]
[-] user.php.php.tar.gz
[edit]
[-] customize-preview.min.css.tar
[edit]
[-] locale.php.tar
[edit]
[-] 270e3f235d59719e24bdfd4a55fd71c9ad6bad.tar
[edit]
[-] etc.tar.gz
[edit]
[-] cover.tar
[edit]
[-] se.png.tar
[edit]
[-] e.tar
[edit]
[-] hr@ediuae.com.tar.gz
[edit]
[-] ediuae.tar
[edit]
[-] ediuae.rcube.db.tar
[edit]
[-] accordion.js.tar
[edit]
[-] class-theme-upgrader-skin.php.tar
[edit]
[-] 1e8ed500d65d4cfe.tar
[edit]
[-] thickbox.css.css.tar.gz
[edit]
[-] xfn.js.tar
[edit]
[-] wpdialog.js.js.tar.gz
[edit]
[-] mask.png.png.tar.gz
[edit]
[-] uploader-icons.png.tar
[edit]
[-] .php.error.log.php.error.log.tar.gz
[edit]
[-] Auth.tar.gz
[edit]
[-] .trash.zip
[edit]
[-] class-wp-http-encoding.php.php.tar.gz
[edit]
[-] registration-functions.php.tar
[edit]
[-] sks-keyservers.netCA.pem.netCA.pem.tar.gz
[edit]
[-] 1e935d14072ec911.tar
[edit]
[-] cover.php.tar
[edit]
[-] customize-controls.min.css.min.css.tar.gz
[edit]
[-] heading.php.php.tar.gz
[edit]
[-] calendar.php.tar
[edit]
[-] error_log.tar.gz
[edit]
[-] query-title.tar
[edit]
[-] classic-themes.css.tar
[edit]
[-] 893a42820620a73e2c86b7f69dce751df4706c.tar
[edit]
[-] ediuae.rcube.db.1770204696.rcube.db.1770204696.tar.gz
[edit]
[-] utf8.php.tar
[edit]
[-] class-ftp.php.php.tar.gz
[edit]
[-] 1eac40ad0f1a599e.tar.gz
[edit]
[-] wp-config.php.tar
[edit]
[-] class-wp-application-passwords.php.php.tar.gz
[edit]
[-] functions.php.php.tar.gz
[edit]
[-] admin-bar.js.js.tar.gz
[edit]
[-] align-right.png.png.tar.gz
[edit]
[-] .social@ediuae_com.zip
[edit]
[-] mounts.tar.gz
[edit]
[-] 8e3a1b2f34347cd2.tar.gz
[edit]
[-] widget-group.zip
[edit]
[-] accordion-heading.tar
[edit]
[-] block-i18n.json.json.tar.gz
[edit]
[-] query.php.php.tar.gz
[edit]
[-] preformatted.zip
[edit]
[-] src.zip
[edit]
[-] column.tar.gz
[edit]
[-] utils.zip
[edit]
[-] class-IXR-server.php.tar
[edit]
[-] comment-template.php.tar
[edit]
[-] autotest.tar
[edit]
[-] pattern.php.tar
[edit]
[-] 13e6f7a95ae04672dc5e454c50d1d42e45bf78.tar
[edit]
[-] tw-sack.min.js.min.js.tar.gz
[edit]
[-] plupload.zip
[edit]
[-] 84c678fe0ae8e1d6f4d130141055ade80d93d5.tar.gz
[edit]
[-] code.tar.gz
[edit]
[-] theme.php.tar
[edit]
[-] b908048309e487c66bf389ca0beadf7e99cd71.tar.gz
[edit]
[-] .184a94671617d030554ede9891040720f48dcfeda.tar
[edit]
[-] jquery-ui-dialog.css.tar
[edit]
[-] plugin.php.tar
[edit]
[-] theme.css.css.tar.gz
[edit]
[-] ms-files.php.php.tar.gz
[edit]
[-] class-walker-page.php.tar
[edit]
[-] class-wp-application-passwords.php.tar
[edit]
[-] comment-template.php.php.tar.gz
[edit]
[-] term-template.tar
[edit]
[-] wpspin-2x.gif.tar
[edit]
[-] .hr@ediuae_com.zip
[edit]
[-] tags-box.js.js.tar.gz
[edit]
[-] .bash_logout.bash_logout.tar.gz
[edit]
[-] kses.php.tar
[edit]
[-] upgrade-functions.php.php.tar.gz
[edit]
[-] class-pop3.php.php.tar.gz
[edit]
[-] 52f8a136aff70df2c25fc482a8017b91f24f39.tar.gz
[edit]
[-] 806a94a4996f13523dddc75423075a501d4149.tar.gz
[edit]
[-] upgrade-functions.php.tar
[edit]
[-] 79f0ec921dabed95be5ca47ee3af370605c325.tar.gz
[edit]
[-] 1e57c15dac52221e.tar.gz
[edit]
[-] comment.min.js.tar
[edit]
[-] date.php.php.tar.gz
[edit]
[-] servers.nomination.lst.tar
[edit]
[-] 8bc5f6bacc6cb51c.tar
[edit]
[-] link.php.php.tar.gz
[edit]
[-] link-parse-opml.php.php.tar.gz
[edit]
[-] wp-pointer-rtl.css.tar
[edit]
[-] input.tar.gz
[edit]
[-] export-personal-data.php.tar
[edit]
[-] localtime.tar.gz
[edit]
[-] 2e8c3d5ebda85617.tar
[edit]
[-] .proxy_config.tar
[edit]
[-] post-terms.tar.gz
[edit]
[-] cropper.css.css.tar.gz
[edit]
[-] user-new.php.tar
[edit]
[-] install-helper.php.php.tar.gz
[edit]
[-] term-count.zip
[edit]
[-] class-wp-block-bindings-source.php.tar
[edit]
[-] razor-agent.log.log.tar.gz
[edit]
[-] customize-base.js.tar
[edit]
[-] fb1178c22441d44f.tar
[edit]
[-] 1e6fa48320c90a59.tar.gz
[edit]
[-] user-new.php.php.tar.gz
[edit]
[-] keys.tar.gz
[edit]
[-] paragraph.zip
[edit]
[-] video.tar.gz
[edit]
[-] customize-preview.min.css.min.css.tar.gz
[edit]
[-] pie.zip
[edit]
[-] z.mov.mov.tar.gz
[edit]
[-] 8edc90754f31dca713e75d3a44cdf2bf38782f.tar.gz
[edit]
[-] theme-install.php.php.tar.gz
[edit]
[-] customize-preview.css.tar
[edit]
[-] wp-config-sample.php.tar
[edit]
[-] themes.min.css.tar
[edit]
[-] post-thumbnail-template.php.tar
[edit]
[-] 639b18425d69716798fe93492a1840edcd2270.tar
[edit]
[-] d93aba73972162446bd036d183ccfd8a9c6b4d.tar.gz
[edit]
[-] 1e103325208e3f08.tar.gz
[edit]
[-] columns.tar
[edit]
[-] class-smtp.php.php.tar.gz
[edit]
[-] privacy-tools.min.js.min.js.tar.gz
[edit]
[-] screen.php.tar
[edit]
[-] query.tar.gz
[edit]
[-] footnotes.tar
[edit]
[-] ms-themes.php.tar
[edit]
[-] wplink.tar
[edit]
[-] feed-rss2-comments.php.php.tar.gz
[edit]
[-] cache-compat.php.tar
[edit]
[-] ms-deprecated.php.php.tar.gz
[edit]
[-] farbtastic.js.js.tar.gz
[edit]
[-] video.php.php.tar.gz
[edit]
[-] cpuinfo.tar.gz
[edit]
[-] class-wp-customize-control.php.tar
[edit]
[-] credits.php.php.tar.gz
[edit]
[-] a1d90753c8d8fd1d6470eb65a30b37542d832f.tar
[edit]
[-] https-detection.php.tar
[edit]
[-] endpoints.tar
[edit]
[-] backbone.js.js.tar.gz
[edit]
[-] .cpanel_vcf_import_gimanthi@ediuae.com.cpanel_vcf_import_gimanthi@ediuae.com.tar.gz
[edit]
[-] admin-bar.css.tar
[edit]
[-] ssl.db.tar
[edit]
[-] block-bindings.zip
[edit]
[-] 8e3a1b2f34347cd2.tar
[edit]
[-] 67077ae55d33e89943244a99053982ce5c5c1d.tar
[edit]
[-] view.min.asset.php.tar
[edit]
[-] pattern.zip
[edit]
[-] a0fac_dd909_1c378abedc6539da34b792b541115e06.key.key.tar.gz
[edit]
[-] 9db40599417da046f7e02ab3d4bd96146d5d18.tar.gz
[edit]
[-] abilities-api.php.php.tar.gz
[edit]
[-] 1e02cd548acda1d4.tar.gz
[edit]
[-] jquery.tar.gz
[edit]
[-] 1e6d0c611b8741d8.tar
[edit]
[-] 1e954530feb2c981.tar.gz
[edit]
[-] 8.tar.gz
[edit]
[-] class-wp-network.php.php.tar.gz
[edit]
[-] 468671541d6ace4da24f164b0706e8aec135a5.tar.gz
[edit]
[-] class-wp-block-parser-frame.php.php.tar.gz
[edit]
[-] 8e3108bc579b0069.tar
[edit]
[-] 2d0c2cd5bb78b725806d7732ce5aced675485d.tar
[edit]
[-] class-wp-simplepie-file.php.php.tar.gz
[edit]
[-] 15d88fab2723c501e3c177387202d720fa4bf8.tar.gz
[edit]
[-] load.php.php.tar.gz
[edit]
[-] column.tar
[edit]
[-] plugin-install.js.js.tar.gz
[edit]
[-] endpoints.zip
[edit]
[-] themes.tar.gz
[edit]
[-] pullquote.tar
[edit]
[-] au_backups.php.tar
[edit]
[-] components.tar.gz
[edit]
[-] pki-validation.zip
[edit]
[-] more.tar.gz
[edit]
[-] 4d4a8c44a58ba791636456cc548a94aa546461.tar
[edit]
[-] 28278d64955ca9042973e55e9d32422191105e.tar
[edit]
[-] sysconfig.tar
[edit]
[-] compat-utf8.php.tar
[edit]
[-] autoloader.php.php.tar.gz
[edit]
[-] 1cfc0a80919059b2dbf1e2b3d12a2aaa8b8d53.tar.gz
[edit]
[-] servers.nomination.lst.nomination.lst.tar.gz
[edit]
[-] 1ebd949c10cfb8c1.tar.gz
[edit]
[-] assets.tar.gz
[edit]
[-] shortcode.php.php.tar.gz
[edit]
[-] c1589f0852e3bd58.tar.gz
[edit]
[-] class-wp-matchesmapregex.php.tar
[edit]
[-] widgets-form-blocks.php.tar
[edit]
[-] 11824c0cc38bf8111c8423c24135e8897f95fc.tar.gz
[edit]
[-] media.min.css.min.css.tar.gz
[edit]
[-] agrivaingredients.com.tar
[edit]
[-] wp-util.min.js.tar
[edit]
[-] class-wp-http.php.php.tar.gz
[edit]
[-] 96c7d72c8c08896822dad9954f83908e44889a.tar.gz
[edit]
[-] .bash_profile.bash_profile.tar.gz
[edit]
[-] site-new.php.tar
[edit]
[-] b44c0825a1277036c6ac1724e50afc1dd35407.tar.gz
[edit]
[-] admin-menu-rtl.css.tar
[edit]
[-] search.tar.gz
[edit]
[-] customize-nav-menus.min.css.tar
[edit]
[-] 79f0ec921dabed95be5ca47ee3af370605c325.tar
[edit]
[-] video.zip
[edit]
[-] fe58f81ee9573823.tar
[edit]
[-] style.min.css.min.css.tar.gz
[edit]
[-] xmainwelcomedismissed.tar
[edit]
[-] accubooksuae.com.zip
[edit]
[-] wp-settings.php.php.tar.gz
[edit]
[-] theme-templates.php.php.tar.gz
[edit]
[-] deprecated-media-rtl.css.css.tar.gz
[edit]
[-] preformatted.tar.gz
[edit]
[-] info@accubooksuae.com.tar
[edit]
[-] avatar.tar.gz
[edit]
[-] toggige-arrow.jpg.jpg.tar.gz
[edit]
[-] arrows-2x.png.png.tar.gz
[edit]
[-] .softaculous.tar
[edit]
[-] .last.inodes.tar
[edit]
[-] wp-trackback.php.tar
[edit]
[-] class-wp-roles.php.php.tar.gz
[edit]
[-] class-IXR-value.php.tar
[edit]
[-] columns.zip
[edit]
[-] f9eb6f55bff16d0230cb9fbfa3c923526f815a.tar
[edit]
[-] ostic14.tar.gz
[edit]
[-] ediuae.rcube.db.1772035248.rcube.db.1772035248.tar.gz
[edit]
[-] upgrade.xml.xml.tar.gz
[edit]
[-] 968434c2cc6d7b342ab0330f42caeda2efb2b7.tar.gz
[edit]
[-] wp-embed-template.min.js.tar
[edit]
[-] keys.zip
[edit]
[-] e954fb492fa6b9bec56ced7c2d0c8d79601273.tar
[edit]
[-] git-core.tar
[edit]
[-] .info@nakaafi_com.zip
[edit]
[-] var.zip
[edit]
[-] b6951_7e06d_bdb32a62b867511ef24c766ccc534dcb.key.tar
[edit]
[-] dashboard.php.php.tar.gz
[edit]
[-] 5.zip
[edit]
[-] 9631590b17e830a2.tar.gz
[edit]
[-] colibri.tar.gz
[edit]
[-] certs.zip
[edit]
[-] images.zip
[edit]
[-] cron.php.tar
[edit]
[-] link-template.php.php.tar.gz
[edit]
[-] plugins.php.php.tar.gz
[edit]
[-] general-template.php.tar
[edit]
[-] customize-controls.css.tar
[edit]
[-] file.php.php.tar.gz
[edit]
[-] python3.8.zip
[edit]
[-] 9d7f1ef20b6388ae.tar.gz
[edit]
[-] 708750fc874605ec6ee3265892a3bbdf4c13f3.tar.gz
[edit]
[-] .buddhi@ediuae_com.tar.gz
[edit]
[-] utils.js.js.tar.gz
[edit]
[-] tinymce.tar
[edit]
[-] sendmail.tar
[edit]
[-] class-walker-comment.php.tar
[edit]
[-] misc.php.php.tar.gz
[edit]
[-] 3f1c82b95f9744a00f89306797e6811823ffbf.tar.gz
[edit]
[-] petalwellnessspa.com.zip
[edit]
[-] 9a80d4afb3572a2a.tar.gz
[edit]
[-] ui.tar.gz
[edit]
[-] link-add.php.tar
[edit]
[-] pramod@ediuae.com.zip
[edit]
[-] class-wp-block-parser-frame.php.tar
[edit]
[-] 1e26149ee771237d.tar.gz
[edit]
[-] streams.php.tar
[edit]
[-] heartbeat.js.js.tar.gz
[edit]
[-] .sharing.sharing.tar.gz
[edit]
[-] www.zip
[edit]
[-] category.php.tar
[edit]
[-] 1e88c8d6fa9a1649.tar.gz
[edit]
[-] certificates.zip
[edit]
[-] 8ee721bd4341654e.tar
[edit]
[-] 378ba9a938ad0e4c.tar.gz
[edit]
[-] sparc64-linux.tar.gz
[edit]
[-] awstats012025.ediuae.com.txt.ediuae.com.txt.tar.gz
[edit]
[-] alphaev6-linux.zip
[edit]
[-] yes.png.png.tar.gz
[edit]
[-] custom-html-widgets.js.js.tar.gz
[edit]
[-] 1ef9552009b657bc.tar
[edit]
[-] accelerator-performance.zip
[edit]
[-] 6.tar.gz
[edit]
[-] easyapmt.zip
[edit]
[-] certificates.tar
[edit]
[-] footer.php.php.tar.gz
[edit]
[-] nvdata.tar.gz
[edit]
[-] .cache.zip
[edit]
[-] ms-sites.php.php.tar.gz
[edit]
[-] inline-edit-tax.js.js.tar.gz
[edit]
[-] network.zip
[edit]
[-] media-video-widget.js.tar
[edit]
[-] list-tables-rtl.min.css.min.css.tar.gz
[edit]
[-] fafcb160932ddc8d1f25c34104040214a1ecd2.tar.gz
[edit]
[-] b84a195ae7bfa727b50963e04e95db13ee54cc.tar.gz
[edit]
[-] settings.php.php.tar.gz
[edit]
[-] media-button-other.gif.tar
[edit]
[-] b5af10c4791d55f2.tar
[edit]
[-] b6951_7e06d_bdb32a62b867511ef24c766ccc534dcb.key.key.tar.gz
[edit]
[-] custom-background.js.tar
[edit]
[-] deprecated-media-rtl.min.css.min.css.tar.gz
[edit]
[-] car.txt.tar
[edit]
[-] b.tar.gz
[edit]
[-] fc22c552e47c6bcd8a2a42dcbd7460691e8382.tar
[edit]
[-] json2.min.js.tar
[edit]
[-] e8478e185382c798ead889cde88c828cf45451.tar
[edit]
[-] hello@ediuae.com.tar
[edit]
[-] class-wp-sitemaps.php.tar
[edit]
[-] post-template.tar
[edit]
[-] jcrop.zip
[edit]
[-] a0849bfa8dce24af83853b4cf32a2140d7486e.tar.gz
[edit]
[-] widgets.js.js.tar.gz
[edit]
[-] wp-lists.js.tar
[edit]
[-] 4.zip
[edit]
[-] 1ebd169bdb7975b2.tar
[edit]
[-] .cl.selector.tar.gz
[edit]
[-] feed-rdf.php.php.tar.gz
[edit]
[-] 606da8f45cc0cf62.tar.gz
[edit]
[-] IXR.tar
[edit]
[-] alt-nodejs9_native.req.tar
[edit]
[-] nav-menu.php.tar
[edit]
[-] kmod.prov.tar
[edit]
[-] autosave.min.js.tar
[edit]
[-] class-walker-category-dropdown.php.tar
[edit]
[-] registration-functions.php.php.tar.gz
[edit]
[-] man.zip
[edit]
[-] 1e90033b42738ee6.tar.gz
[edit]
[-] wp-ajax-response.min.js.tar
[edit]
[-] class-wp-navigation-fallback.php.tar
[edit]
[-] member.tar.gz
[edit]
[-] sitemaps.php.php.tar.gz
[edit]
[-] .wget-hsts.tar
[edit]
[-] default-filters.php.php.tar.gz
[edit]
[-] password-toggle.js.tar
[edit]
[-] wordpress-logo.png.png.tar.gz
[edit]
[-] dovecot.index.cache.tar
[edit]
[-] misc.php.tar
[edit]
[-] servers.catalogue.lst.catalogue.lst.tar.gz
[edit]
[-] svg-painter.js.tar
[edit]
[-] edit-form-advanced.php.tar
[edit]
[-] wp-auth-check.js.tar
[edit]
[-] help.fi.txt.tar
[edit]
[-] missing.zip
[edit]
[-] comment-reply.min.js.tar
[edit]
[-] cc630a89ebb355a244e9006e9a78eb8d44df33.tar.gz
[edit]
[-] 1.tar.gz
[edit]
[-] abilities-api.php.tar
[edit]
[-] ms-functions.php.tar
[edit]
[-] new.tar.gz
[edit]
[-] thickbox.tar
[edit]
[-] 6c4bbe74cf2f9d5bbeaf0d7ae5033456b704ef.tar.gz
[edit]
[-] hello@ediuae.com.zip
[edit]
[-] public_html.zip
[edit]
[-] ssl.tar.gz
[edit]
[-] widgets-form-blocks.php.php.tar.gz
[edit]
[-] wp-includes.zip
[edit]
[-] 7.tar.gz
[edit]
[-] a41781dd11d419a1f419ac345e5d67d611480b.tar
[edit]
[-] a1dfc4766171a93de1e6c8e5c46b80611b2f85.tar
[edit]
[-] fonts.php.php.tar.gz
[edit]
[-] library.zip
[edit]
[-] css.tar.gz
[edit]
[-] media-views.css.tar
[edit]
[-] c572bcffaf6da538ba8147260c281af3585fd7.tar.gz
[edit]
[-] media-upload.min.js.min.js.tar.gz
[edit]
[-] sort-2x.gif.tar
[edit]
[-] 6a6850accf6958ba8a80ac9f9a202fbb327294.tar
[edit]
[-] 5127124cd44a3302d19bb3aae6f7b5961660d2.tar.gz
[edit]
[-] class-wp-duotone.php.php.tar.gz
[edit]
[-] ef5494240064c5fc0f0d3abeff460ddad33636.tar.gz
[edit]
[-] wp-emoji.min.js.tar
[edit]
[-] class-wp-image-editor.php.php.tar.gz
[edit]
[-] 410abc1074.php.tar
[edit]
[-] a05b90570b47d587d935371275576c84d70545.tar.gz
[edit]
[-] customize-widgets-rtl.min.css.min.css.tar.gz
[edit]
[-] bashrc.tar
[edit]
[-] Cache.tar.gz
[edit]
[-] term-count.php.tar
[edit]
[-] .htaccess.bk.tar
[edit]
[-] site-logo.tar
[edit]
[-] media-upload.js.tar
[edit]
[-] site-health.js.js.tar.gz
[edit]
[-] class-wp-rewrite.php.php.tar.gz
[edit]
[-] 09b2c1ddfdb628a85970f411c7e5c6ffa1711a.tar
[edit]
[-] 5.tar.gz
[edit]
[-] dashicons.woff.tar
[edit]
[-] info@agrivaingredients.com.tar.gz
[edit]
[-] class-wp-oembed-controller.php.tar
[edit]
[-] post-title.zip
[edit]
[-] rss.tar.gz
[edit]