Я использую этот код для чтения содержимого защищенного каталога (имя пользователя и пароль), который называется (protect).
<?php
require_once("admin/global.inc.php");
// increase script timeout value
ini_set('max_execution_time', 300);
//Generate a new flag
$random = (rand(000000,999999));
$date = date("y-m-d");
// create object
$zip = new ZipArchive();
// open archive
if ($zip->open("$date-$random.zip", ZIPARCHIVE::CREATE) !== TRUE) {
die ("Could not open archive");
}
// initialize an iterator
// pass it the directory to be processed
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("protect/")); //check question #2
// iterate over the directory
// add each file found to the archive
foreach ($iterator as $key=>$value) {
if ($key != 'protect/.htaccess')
{
$zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key");
$query="INSERT INTO `archives_logs` (`id`, `file`, `flag`, `date`) VALUES (NULL, '$key', '$random', '$date')";
$query_result = mysql_query ($query);
}
}
// close and save archive
$zip->close();
echo "Archive created successfully.";
?>
Если я размещаю файл с кодом в месте, отличном от местоположения защищенного каталога, я долженизмените путь к каталогу, который нужно сжать, что нормально, НО проблема в том, что все каталоги в пути включены в Zip-архив.Поэтому, если открыть сжатый файл, я получу: www / username / public_html / etc ...
Вот каталоги strcuture: www / protect / (файлы, которые будут сжаты здесь) www / compress_code.php (здесьмой текущий файл кода)
Путь, в котором я хочу разместить свой файл кода: www / protect / admin / files / compress_code.php
Q1) Как сохранить файл кодав последнем указанном месте, БЕЗ пути к нему в моем файле ZipArchive?
Q2) Когда мой код находится в том же месте каталога, который нужно сжать, и когда я открываю сжатый файл, который я вижу, защищаюфайлы).Могу ли я добавить только содержимое каталога защиты в Zip-архив, не включая сам каталог?