Nejste přihlášeni
Týmto chcem uľahčiť prácu všetkým ktorý používajú vlastné inštalácie CMS.
Je zbytočné kopírovať celý CMS ktorý obsahuje viac ako 10000 súborov na FTP.
Jednoduchšie je uploadovať jeden ZIP súbor a rozbaliť ho priamo na servery.
Vytvorte si súbor unzip.php s týmto obsahom:
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>UnZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><?php $writable = (is_writable('.')); ?><h2><small>[<a href='./unzip.php'>obnoviť</a>]</small> Dostupné zip súbory <small>(v priečinku - <span class="message <?php echo ($writable) ? 'ok' : 'error' ?>"><?php echo ($writable) ? 'je' : 'nie je' ?> zapisovateľný</span>)</small>:</h2><?php
$file_list = array();
if ($handler = opendir(dirname(__FILE__))) {
$i = 0;
while (false !== ($filename = readdir($handler))) {
if (!is_dir($filename) AND 'zip' == substr($filename, -3, 3)) {
$file_list[$i]['name'] = $filename;
$file_list[$i]['time'] = date('r',fileCTime($filename));
$file_list[$i]['size'] = round(fileSize($filename)/(1024*1024),2) . ' MB';
$i++;
}
}
closedir($handler);
}
if (!count($file_list)) { ?><p>Žiadne súbory k rozbaleniu!</p><?php
} else {
echo '<table><thead><tr><th>Názov<th>Veľkosť<th>Čas (vytvorenia)<th> <tbody>';
foreach ($file_list as $file) {
echo "<tr><th>$file[name]"
. " <td> $file[size]"
. " <td> $file[time]"
. " <td> <form action='./unzip.php' method='post'><input type='hidden' name='unpack' value='$file[name]'><input type='submit' value='Rozbaliť'></form>";
}
echo '</table>';
}
if (isset($_POST['unpack'])) {
$file = $_POST['unpack']; ?><h2>Výsledky <small>(rozbaľovanie <?php echo $file; ?>)</small></h2><?php
if (!is_file($file)) { ?><p class="message error">Súbor <em><b><?php echo $file ?></b></em> sa nenašiel.</p><?php
} elseif (unzip($file)) { ?><p class="message ok">Súbor <em><b><?php echo $file ?></b></em> rozbalený.</p><?php
} else { ?><p class="message error">Rozbaľovanie súboru <em><b><?php echo $file ?></b></em> zlyhalo.</p><?php
}
} ?></body></html><?php
function unzip($src_file, $dest_dir=true, $create_zip_name_dir=true, $overwrite=true)
{
if(function_exists("zip_open")) {
if(!is_resource(zip_open($src_file))) {
$src_file=dirname($_SERVER['SCRIPT_FILENAME'])."/".$src_file;
}
if (is_resource($zip = zip_open($src_file))) {
$splitter = ($create_zip_name_dir === true) ? "." : "/";
if ($dest_dir === false)
$dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";
else
$dest_dir = "";
create_dirs($dest_dir);
while ($zip_entry = zip_read($zip)) {
$pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");
if ($pos_last_slash !== false) {
create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));
}
if (zip_entry_open($zip,$zip_entry,"r")) {
$file_name = $dest_dir.zip_entry_name($zip_entry);
if ($overwrite === true || $overwrite === false && !is_file($file_name)) {
$fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
if(!is_dir($file_name))
file_put_contents($file_name, $fstream );
if(file_exists($file_name)) {
chmod($file_name, 0777);
$results[] = array($file_name, true);
}
else {
$results[] = array($file_name, false);
}
}
zip_entry_close($zip_entry);
}
}
zip_close($zip);
echo '<ol class="messages">';
foreach ($results as $r) {
$msg_type = ($r[1]) ? 'ok' : 'error';
$msg = ($r[1]) ? 'Úspešné' : 'Neúspešné';
echo "<li class='message $msg_type'><em>$msg</em> - <a href='$r[0]'>$r[0]</a>";
}
echo '</ol>';
if ($msg_type == 'ok') return true; else return false;
}
else {
return false;
}
return true;
}
else
{
if(version_compare(phpversion(), "5.2.0", "<"))
$infoVersion="(PHP 5.2.0 alebo vyššiu)";
echo "Je potrebné nainštalovať/povoliť php_zip.dll rozšírenie $infoVersion";
}
}
function create_dirs($path)
{
if (!is_dir($path)) {
$directory_path = "";
$directories = explode("/",$path);
array_pop($directories);
foreach($directories as $directory) {
$directory_path .= $directory."/";
if (!is_dir($directory_path)) {
mkdir($directory_path);
chmod($directory_path, 0777);
}
}
}
}
?>
nakopírujte ho na FTP spolu zo ZIP archívom Vášho webu.
Otvorte si ho cez http://www.vasadomena.tld/unzip.php a kliknite na Rozbaliť.
- - -
Ako si urobiť zálohu celého webu prípadne nejakého adresára?
Jednoducho, vytvorte si súbor zip.php s týmto obsahom:
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><h2><small>[<a href='./zip.php'>obnoviť</a>]</small></h2>
<?php
$action = $_POST[action]; $directory = $_POST[directory]; $zipfile = $_POST[zipfile];
echo '<table><thead><tr><th> <th>Priečinok<th>Názov archívu<th> <tbody>';
echo "<tr><th><form action='./zip.php' method='post'>"
. " <td><input type='text' name='directory' value='.'>*"
. " <td><input type='text' name='zipfile' value='".date("Y-m-d-H-i-s").".zip'>"
. " <td><input type='hidden' name='action' value='start'><input type='submit' value='Zbaliť'></form>";
echo '</table>';
if ($action == "start") {
$filenames = array();
function browse($dir) {
global $filenames;
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && is_file($dir.'/'.$file)) {
$filenames[] = $dir.'/'.$file;
}
else if ($file != "." && $file != ".." && is_dir($dir.'/'.$file)) {
browse($dir.'/'.$file);
}
}
closedir($handle);
}
return $filenames;
}
browse($directory);
$zip = new ZipArchive();
if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <$zipfile>\n");
}
?><h2>Výsledky <small>(zbaľovania)</small></h2><?php
echo '<ol class="messages">';
foreach ($filenames as $filename) {
echo "<li class='message ok'>Súbor <em><b>$filename</b></em> pridaný.";
$zip->addFile($filename,$filename);
}
echo '</ol>';
if (($zip->status == 0)&($zip->numFiles != 0)) echo "<p class='message ok'>Celkovo pridaných <em><b>" . $zip->numFiles . "</b></em> súborov v archíve <em><b>" . $zipfile . "</b></em>.</p>";
else echo "<p class='message error'>Súbory sa nepodarilo zbaliť!</p>";
$zip->close();
}
?></body></html>
Otvorte si ho cez http://www.vasadomena.tld/zip.php.
Zvoľte adresár ktorý chcete archivovať a názov archívu a kliknite na Zbaliť *.
* v prípade že chcete archivovať všetko čo je v danej zložke kde ste súbor zip.php umiestnili ponechajte znak . (bodka) namiesto názvu adresára.
Offline
ahoj, hezký návod:)
ale nestačila by fce unzip na webftp?
IT portál efacebook.cz, seo katalog webů
Offline
Offline
Z mojimi skúsenosťami s webftp nemám dobré skúsenosti. Skript beží strašne dlho a nie vždy úspešne skončí. Je vždy na uvážení užívateľa aký spôsob zvolí
jasně, jenom se ptám
já jen, že být začátečníkem a uvidět ten zdrojovej kód, tak se leknu a "uteču"
IT portál efacebook.cz, seo katalog webů
Offline
super navod
Offline
Tak jsem to provedl podle návodu a zpakoval si web do zip archivu - ale kde je?? nemůžu ho najít. Do které složky se to zpakuje? :?: díky za odpověd
Offline
Tak jsem to provedl podle návodu a zpakoval si web do zip archivu - ale kde je?? nemůžu ho najít. Do které složky se to zpakuje? :?: díky za odpověd
Tak už jsem je objevil - nevím proč ale ze začátku mi ty soubory prostě f-týpko nechtělo najít nebo zobrazit i když jsem restartnul spojení. Každopádně návod viz. výše funguje výborně. Díky
Offline
Záleží ako si nastavíš spojenie, nesmie byť povolené používanie vyrovnávacej pamäte pre už zobrazené priečinky tak ti pri opätovnom načítaní zobrazí ZIP súbor podľa toho aký si si zvolil jeho názov
Offline
Jen jelikož soubor na rozzipováni souborů tu je ve slovenštině.Tak mě tak napadlo, že jej jen hodím do češtiny a tak jej tady máte v příloze.Přeji hodně štěstí lidi.A doufám že to někomu udělá radost
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Rozzipování CMS</title>
</head>
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>UnZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><?php $writable = (is_writable('.')); ?><h2><small>[<a href='./unzip.php'>Obnovit</a>]</small> Dostupné zip soubory <small>(soubor - <span class="message <?php echo ($writable) ? 'ok' : 'error' ?>"><?php echo ($writable) ? 'je' : 'není' ?> zapisovatelný</span>)</small>:</h2><?php
$file_list = array();
if ($handler = opendir(dirname(__FILE__))) {
$i = 0;
while (false !== ($filename = readdir($handler))) {
if (!is_dir($filename) AND 'zip' == substr($filename, -3, 3)) {
$file_list[$i]['name'] = $filename;
$file_list[$i]['time'] = date('r',fileCTime($filename));
$file_list[$i]['size'] = round(fileSize($filename)/(1024*1024),2) . ' MB';
$i++;
}
}
closedir($handler);
}
if (!count($file_list)) { ?><p>Žádné soubory k rozbalení!</p><?php
} else {
echo '<table><thead><tr><th>Název<th>Velikost<th>Čas (vytvoření)<th> <tbody>';
foreach ($file_list as $file) {
echo "<tr><th>$file[name]"
. " <td> $file[size]"
. " <td> $file[time]"
. " <td> <form action='./unzip.php' method='post'><input type='hidden' name='unpack' value='$file[name]'><input type='submit' value='Rozbaliť'></form>";
}
echo '</table>';
}
if (isset($_POST['unpack'])) {
$file = $_POST['unpack']; ?><h2>Výsledky <small>(rozbalování <?php echo $file; ?>)</small></h2><?php
if (!is_file($file)) { ?><p class="message error">Soubor <em><b><?php echo $file ?></b></em> nebyl nalezen.</p><?php
} elseif (unzip($file)) { ?><p class="message ok">Soubor <em><b><?php echo $file ?></b></em> byl rozbalen.</p><?php
} else { ?><p class="message error">Rozbalování souboru <em><b><?php echo $file ?></b></em> selhalo.</p><?php
}
} ?></body></html><?php
function unzip($src_file, $dest_dir=true, $create_zip_name_dir=true, $overwrite=true)
{
if(function_exists("zip_open")) {
if(!is_resource(zip_open($src_file))) {
$src_file=dirname($_SERVER['SCRIPT_FILENAME'])."/".$src_file;
}
if (is_resource($zip = zip_open($src_file))) {
$splitter = ($create_zip_name_dir === true) ? "." : "/";
if ($dest_dir === false)
$dest_dir = substr($src_file, 0, strrpos($src_file, $splitter))."/";
else
$dest_dir = "";
create_dirs($dest_dir);
while ($zip_entry = zip_read($zip)) {
$pos_last_slash = strrpos(zip_entry_name($zip_entry), "/");
if ($pos_last_slash !== false) {
create_dirs($dest_dir.substr(zip_entry_name($zip_entry), 0, $pos_last_slash+1));
}
if (zip_entry_open($zip,$zip_entry,"r")) {
$file_name = $dest_dir.zip_entry_name($zip_entry);
if ($overwrite === true || $overwrite === false && !is_file($file_name)) {
$fstream = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
if(!is_dir($file_name))
file_put_contents($file_name, $fstream );
if(file_exists($file_name)) {
chmod($file_name, 0777);
$results[] = array($file_name, true);
}
else {
$results[] = array($file_name, false);
}
}
zip_entry_close($zip_entry);
}
}
zip_close($zip);
echo '<ol class="messages">';
foreach ($results as $r) {
$msg_type = ($r[1]) ? 'ok' : 'error';
$msg = ($r[1]) ? 'Úspešné' : 'Neúspešné';
echo "<li class='message $msg_type'><em>$msg</em> - <a href='$r[0]'>$r[0]</a>";
}
echo '</ol>';
if ($msg_type == 'ok') return true; else return false;
}
else {
return false;
}
return true;
}
else
{
if(version_compare(phpversion(), "5.2.0", "<"))
$infoVersion="(PHP 5.2.0 alebo vyšší)";
echo "Je potřebné nainstalovat/povolit php_zip.dll rozšíření $infoVersion";
}
}
function create_dirs($path)
{
if (!is_dir($path)) {
$directory_path = "";
$directories = explode("/",$path);
array_pop($directories);
foreach($directories as $directory) {
$directory_path .= $directory."/";
if (!is_dir($directory_path)) {
mkdir($directory_path);
chmod($directory_path, 0777);
}
}
}
}
?>
<body>
</body>
</html>
Pokud naleznete nějakou nesrovnalost klidně mi ji ohlaste.
Offline
ja si myslím, že to je zbytočné aj keď by to bolo v angličtine. To je iba na súkromné účely (určite by sme nechceli, aby nám tam niekto sťahoval celú našu stránku alebo rozbaľoval ZIP súbory priamo na stránke)
-- môj názor --
ale nikdy nevieme, možno to niekomu zachráni život
Portfólio
E-mail: eduard(at)karpiel.sk
Offline
Ale tak když už jsem to měl v pc tak jsem to sem dal.Co kdyby se to někomu hodilo
Offline
Offline
To ano ale jak už jsem říkal každý není takový expert jako rádcové Endory.A tak jsem si řek , že to sem mohu nahodit.teda doufám že to tady nepřekáží XD
Offline
Súbor sa nachádza v rovnakom adresári v ktorom si mal zip.php a jeho názov je taký ako si ho pomenoval. Samozrejme ak stránka bola väčšia ako sa zvládlo, tj cca nad 300 MB tak to je vo viacerých súboroch z inými názvami. Samozrejme takéto súbory sú nepoužiteľné.
Offline
Ako si urobiť zálohu celého webu prípadne nejakého adresára?
Jednoducho, vytvorte si súbor zip.php s týmto obsahom:
<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ZIPovač</title><meta name="robots" content="noindex,nofollow" /><style>body { padding:2em; max-width:50em; font-family:"Trebuchet MS", "Geneva CE", lucida, sans-serif;}table {border-collapse:collapse;font-size:82%;}td, th {padding:5px;border:1px solid #ddd;}th {padding-right:10px;background-color:#eee;text-align:left; font-weight:bold;}thead th {background-color:#ddd;}a {color:inherit;}small {font-size:100%; color:#ccc; font-weight:normal;}table a {color:#000; text-decoration:underline; font-weight:bold;}table a:visited {font-weight:normal;}.messages {max-height:10em; overflow-y:auto;}.message.ok {color:green;}.message.error {color:red;}</style></head><body><h2><small>[<a href='./zip.php'>obnoviť</a>]</small></h2> <?php $action = $_POST[action]; $directory = $_POST[directory]; $zipfile = $_POST[zipfile]; echo '<table><thead><tr><th> <th>Priečinok<th>Názov archívu<th> <tbody>'; echo "<tr><th><form action='./zip.php' method='post'>" . " <td><input type='text' name='directory' value='.'>*" . " <td><input type='text' name='zipfile' value='".date("Y-m-d-H-i-s").".zip'>" . " <td><input type='hidden' name='action' value='start'><input type='submit' value='Zbaliť'></form>"; echo '</table>'; if ($action == "start") { $filenames = array(); function browse($dir) { global $filenames; if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != ".." && is_file($dir.'/'.$file)) { $filenames[] = $dir.'/'.$file; } else if ($file != "." && $file != ".." && is_dir($dir.'/'.$file)) { browse($dir.'/'.$file); } } closedir($handle); } return $filenames; } browse($directory); $zip = new ZipArchive(); if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) { exit("cannot open <$zipfile>\n"); } ?><h2>Výsledky <small>(zbaľovania)</small></h2><?php echo '<ol class="messages">'; foreach ($filenames as $filename) { echo "<li class='message ok'>Súbor <em><b>$filename</b></em> pridaný."; $zip->addFile($filename,$filename); } echo '</ol>'; if (($zip->status == 0)&($zip->numFiles != 0)) echo "<p class='message ok'>Celkovo pridaných <em><b>" . $zip->numFiles . "</b></em> súborov v archíve <em><b>" . $zipfile . "</b></em>.</p>"; else echo "<p class='message error'>Súbory sa nepodarilo zbaliť!</p>"; $zip->close(); } ?></body></html>
Otvorte si ho cez http://www.vasadomena.tld/zip.php.
Zvoľte adresár ktorý chcete archivovať a názov archívu a kliknite na Zbaliť *.
* v prípade že chcete archivovať všetko čo je v danej zložke kde ste súbor zip.php umiestnili ponechajte znak . (bodka) namiesto názvu adresára.
Prosím jak můžu vybrat jen několik složek který chci do .zip souboru zařadit, třeba složka1, složka 23 a složka 54
Děkuji za radu
Offline
Offline
Nevím zdali se svými znalostmi to dokáži dát
Offline
Ak budem mať chvíľku tak to možno i dokódujem
Jj díky moc
Offline
Offline