Модуль zip для php

Как же его прикрутить то...

#16 31 июля 2014 в 12:54
Давайте под сполер весь файл
#17 31 июля 2014 в 13:03
  1. <?php
  2.  
  3. /**
  4.  * Рекурсивно удаляет директорию
  5.  * @param string $directory
  6.  * @param bool $is_clear Если TRUE, то директория будет очищена, но не удалена
  7.  * @return bool
  8.  */
  9. function files_remove_directory($directory, $is_clear=false){
  10.  
  11. if(substr($directory,-1) == '/'){
  12. $directory = substr($directory,0,-1);
  13. }
  14.  
  15. if(!file_exists($directory) || !is_dir($directory) || !is_readable($directory)){
  16. return false;
  17. }
  18.  
  19. $handle = opendir($directory);
  20.  
  21. while (false !== ($node = readdir($handle))){
  22.  
  23. if($node != '.' && $node != '..'){
  24.  
  25. $path = $directory.'/'.$node;
  26.  
  27. if(is_dir($path)){
  28. if (!files_remove_directory($path)) { return false; }
  29. } else {
  30. if(!@unlink($path)) { return false; }
  31. }
  32.  
  33. }
  34.  
  35. }
  36.  
  37. closedir($handle);
  38.  
  39. if ($is_clear == false){
  40. if(!@rmdir($directory)){
  41. return false;
  42. }
  43. }
  44.  
  45. return true;
  46.  
  47. }
  48.  
  49. /**
  50.  * Очищает директорию
  51.  * @param string $directory
  52.  * @return bool
  53.  */
  54. function files_clear_directory($directory){
  55. return files_remove_directory($directory, true);
  56. }
  57.  
  58. /**
  59.  * Возвращает дерево каталогов и файлов по указанному пути в виде
  60.  * рекурсивного массива
  61.  * @param string $path
  62.  * @return array
  63.  */
  64. function files_tree_to_array($path){
  65.  
  66. $data = array();
  67.  
  68. $dir = new DirectoryIterator( $path );
  69.  
  70. foreach ( $dir as $node ){
  71. if ( $node->isDir() && !$node->isDot() ){
  72. $data[$node->getFilename()] = files_tree_to_array( $node->getPathname() );
  73. } else if ( $node->isFile() ){
  74. $data[] = $node->getFilename();
  75. }
  76. }
  77.  
  78. return $data;
  79.  
  80. }
  81.  
  82. /**
  83.  * Нормализует путь к файлу, убирая все условные переходы.
  84.  *
  85.  * Например путь
  86.  * /path/to/../folder
  87.  * будет преобразован в
  88.  * /path/folder
  89.  *
  90.  * @param string $path
  91.  * @return string
  92.  */
  93. function files_normalize_path($path) {
  94.  
  95. $parts = explode('/', $path);
  96. $safe = array();
  97. foreach ($parts as $idx => $part) {
  98. if (empty($part) || ('.' == $part)) {
  99. continue;
  100. } elseif ('..' == $part) {
  101. array_pop($safe);
  102. continue;
  103. } else {
  104. $safe[] = $part;
  105. }
  106. }
  107.  
  108. $path = implode('/', $safe);
  109. return $path;
  110.  
  111. }
  112.  
  113. /**
  114.  * Получает строку вида "8M" или "1024K" и возвращает значение в байтах
  115.  * Полезно при получении max_upload_size из php.ini
  116.  *
  117.  * @param string $value
  118.  * @return int
  119.  */
  120. function files_convert_bytes($value) {
  121. if ( is_numeric( $value ) ) {
  122. return $value;
  123. } else {
  124. $value_length = strlen( $value );
  125. $qty = substr( $value, 0, $value_length - 1 );
  126. $unit = strtolower( substr( $value, $value_length - 1 ) );
  127. switch ( $unit ) {
  128. case 'k':
  129. $qty *= 1024;
  130. break;
  131. case 'm':
  132. $qty *= 1048576;
  133. break;
  134. case 'g':
  135. $qty *= 1073741824;
  136. break;
  137. }
  138. return $qty;
  139. }
  140. return $value;
  141. }
  142.  
  143. /**
  144.  * Переводит байты в Гб, Мб или Кб и возвращает полученное число + единицу измерения
  145.  * в виде единой строки
  146.  * @param int $bytes
  147.  * @return string
  148.  */
  149. function files_format_bytes($bytes) {
  150.  
  151. $kb = 1024;
  152. $mb = 1048576;
  153. $gb = 1073741824;
  154.  
  155. if (round($bytes / $gb) > 0) {
  156. return ceil($bytes / $gb) . ' ' . LANG_GB;
  157. }
  158.  
  159. if (round($bytes / $mb) > 0) {
  160. return ceil($bytes / $mb) . ' ' . LANG_MB;
  161. }
  162.  
  163. if (round($bytes / $kb) > 0) {
  164. return ceil($bytes / $kb) . ' ' . LANG_KB;
  165. }
  166.  
  167. return $bytes . ' ' . LANG_B;
  168.  
  169. }
  170.  
  171. /**
  172.  * Очищает имя файла от специальных символов
  173.  *
  174.  * @param string $filename
  175.  * @return string
  176.  */
  177. function files_sanitize_name($filename){
  178.  
  179. $filename = mb_strtolower($filename);
  180. $filename = preg_replace(array('/[\&]/', '/[\@]/', '/[\#]/'), array('-and-', '-at-', '-number-'), $filename);
  181. $filename = preg_replace('/[^(\x20-\x7F)]*/','', $filename);
  182. $filename = str_replace(' ', '-', $filename);
  183. $filename = str_replace('\'', '', $filename);
  184. $filename = preg_replace<
#18 31 июля 2014 в 13:39
Я не силён особо в php, но согласно этому
  1. curl_setopt($curl, CURLOPT_HEADER, false);
должен быть true.Попоробуйте.
#19 31 июля 2014 в 13:44


Я не силён особо в php, но согласно этому

  1. curl_setopt($curl, CURLOPT_HEADER, false);
должен быть true.Попоробуйте.

Lora
Покажите на всякий случай файл curl.ini. Это на сервере. У меня (Ubuntu) /etc/php5/mod_available/
так же посмотрите есть ли он по адресу /usr/share/php5, ну или что то такое
#20 31 июля 2014 в 14:16


Покажите на всякий случай файл curl.ini. Это на сервере. У меня (Ubuntu) /etc/php5/mod_available/
так же посмотрите есть ли он по адресу /usr/share/php5, ну или что то такое

Lora
  1. ; configuration for php CURL module
  2. ; priority=20
  3. extension=curl.so
  4.  
#21 31 июля 2014 в 14:19


Я не силён особо в php, но согласно этому

  1. curl_setopt($curl, CURLOPT_HEADER, false);
должен быть true.Попоробуйте.

Lora

Попробовал в обоих местах поменял, результат ноль
#22 31 июля 2014 в 14:42
У вас локалка или хостинг?
#23 31 июля 2014 в 14:47
Проблема решена, на папку /upload/installer не было прав =))
#24 31 июля 2014 в 14:48
Блин, хотел ещё в начале спросить про права
#25 31 июля 2014 в 23:33


Проблема решена, на папку /upload/installer не было прав =))

SALIK

Вы смогли обновиться sftp? или через консоль?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.