Можете ли вы распаковать .zip на удаленный сервер? - PullRequest
3 голосов
/ 17 августа 2011

У меня есть скрипт для распаковки файлов на сервере, но есть ли возможность разархивировать файлы на внешнем или удаленном сервере.

Например, я могу пойти

<?php 
$zip = new ZipArchive; 
$zip->open('ftp://user:password@host/path/file.zip'); 
$zip->extractTo('ftp://user:password@host/'); 
$zip->close(); 
echo "Ok!"; ?>

Большое спасибо

Ответы [ 2 ]

2 голосов
/ 16 апреля 2013

чтобы разархивировать удаленный файл на сервере с PHP, довольно простое решение, которое сработало для меня:

  1. ftp zip-файл, скажем a.zip, в удаленную папку, гдеВы хотите извлечь

  2. создайте php файл unzip.php и загрузите его в ту же папку, что и указанный выше zip-файл

  3. вставьте следующеекод в unzip.php:

<?php 
  $zip = new ZipArchive; 
  $zip->open('a.zip');
  $zip->extractTo('x/'); 
  $zip->close(); 
  echo "Ok!"; 
?>
  1. установить chmod из unzip.php в исполняемый файл

  2. выполнить phpфайл из любого браузера - вы получите 'Ok', подтверждающий извлечение

2 голосов
/ 17 августа 2011

Вы можете попробовать следующее через ssh-соединение с этим сервером:

<?php
$connection = ssh2_connect('example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$stream = ssh2_exec($connection, 'unzip /path/to/file.zip');
?>

Больше информации здесь: http://www.php.net/manual/en/function.ssh2-exec.php

...