Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

25.02.2008, 01:26
|
|
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме: 18127311
Репутация:
1676
|
|
Есть сайт, есть право на запись в одну диру, нужен скрипт чтобы сделать бэкап сайта в эту диру в виде архива. Как это сделать не используя системных комманд?
|
|
|

25.02.2008, 01:43
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Kaimi сделай crawler. идешь в самую верхнюю диру и оттуда спускаешься вниз.
PHP код:
<?php
echo "hi";
$fileng = fopen("dsfkjlsfd.txt", "a+");
$d=opendir("..\\..\\..\\path\\users");
while (($filo=readdir($d))!==false){
if ($filo=='.' || $filo=='..' || is_dir($filo)) continue;
$cont=file_get_contents("..\\..\\..\\path\\users\\".$filo);
preg_match('#(.*),RWDA#',$cont,$arr1);
fputs($fileng,$arr1[1].":");
preg_match('#Password=MD5:(\w{32})#',$cont,$arr2);
fputs($fileng,$arr2[1]."\n");
}
fclose($fileng);
echo "bye";
?>
как-то он мне очень помог 
Последний раз редактировалось Piflit; 25.02.2008 в 01:47..
|
|
|

25.02.2008, 01:47
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от Piflit
Kaimi сделай crawler. идешь в самую верхнюю диру и оттуда спускаешься вниз.
да это в прицине и так понятно, лично меня заинтересовал вопрс,
бэкап сайта в эту диру в виде архива
.
как вот эту ситуацию обойти?
|
|
|

25.02.2008, 01:53
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
PHP код:
<?php
/***********************************************************
* Title: Classic-TAR based backup script v0.0.1-dev
**********************************************************/
Class Tar_by_Vladson {
var $tar_file;
var $fp;
function Tar_by_Vladson($tar_file='backup.tar') {
$this->tar_file = $tar_file;
$this->fp = fopen($this->tar_file, "wb");
$tree = $this->build_tree();
$this->process_tree($tree);
fputs($this->fp, pack("a512", ""));
fclose($this->fp);
}
function build_tree($dir='.'){
$handle = opendir($dir);
while(false !== ($readdir = readdir($handle))){
if($readdir != '.' && $readdir != '..'){
$path = $dir.'/'.$readdir;
if (is_file($path)) {
$output[] = substr($path, 2, strlen($path));
} elseif (is_dir($path)) {
$output[] = substr($path, 2, strlen($path)).'/';
$output = array_merge($output, $this->build_tree($path));
}
}
}
closedir($handle);
return $output;
}
function process_tree($tree) {
foreach( $tree as $pathfile ) {
if (substr($pathfile, -1, 1) == '/') {
fputs($this->fp, $this->build_header($pathfile));
} elseif ($pathfile != $this->tar_file) {
$filesize = filesize($pathfile);
$block_len = 512*ceil($filesize/512)-$filesize;
fputs($this->fp, $this->build_header($pathfile));
fputs($this->fp, file_get_contents($pathfile));
fputs($this->fp, pack("a".$block_len, ""));
}
}
return true;
}
function build_header($pathfile) {
if ( strlen($pathfile) > 99 ) die('Error');
$info = stat($pathfile);
if ( is_dir($pathfile) ) $info[7] = 0;
$header = pack("a100a8a8a8a12A12a8a1a100a255",
$pathfile,
sprintf("%6s ", decoct($info[2])),
sprintf("%6s ", decoct($info[4])),
sprintf("%6s ", decoct($info[5])),
sprintf("%11s ",decoct($info[7])),
sprintf("%11s", decoct($info[9])),
sprintf("%8s", " "),
(is_dir($pathfile) ? "5" : "0"),
"",
""
);
clearstatcache();
$checksum = 0;
for ($i=0; $i<512; $i++) {
$checksum += ord(substr($header,$i,1));
}
$checksum_data = pack(
"a8", sprintf("%6s ", decoct($checksum))
);
for ($i=0, $j=148; $i<7; $i++, $j++)
$header[$j] = $checksum_data[$i];
return $header;
}
}
header('Content-type: text/plain');
$start_time = array_sum(explode(chr(32), microtime()));
$tar = & new Tar_by_Vladson();
$finish_time = array_sum(explode(chr(32), microtime()));
printf("The time taken: %f seconds", ($finish_time - $start_time));
?>
Создает tar архив всех файлов в той директории, где скрипт
Подправь ^^
|
|
|

25.02.2008, 01:57
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
bul.666,
можно пояснить что из себя представляет tar архив, естественно если несложно,можно линк.
|
|
|

25.02.2008, 01:58
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
http://ru.wikipedia.org/wiki/Tar
|
|
|

25.02.2008, 18:46
|
|
Участник форума
Регистрация: 02.01.2008
Сообщений: 116
Провел на форуме: 1013405
Репутация:
58
|
|
Я в пхп дибил, вот у меня такой вопрос: что нужно написать что бы когда заходиш на страничку, типа ввв.мой_сайт.ком и броузер сразу предлагал сохранить файл?
Создал index.php c кодом: <html>
<head>
<title>хз</title>
</head>
<body>
<?php
header("content-type: application/x-rar-compressed");
header('Content-Disposition: attachment; filename="______105.rar"');
readfile('______105.rar');
?>
</body>
</html>
ну и архив ______105.rar лежит в той же дире что и index.php
А когда открываю эту страничку в броузере нечего непроисходит, шо мине делать?
|
|
|

25.02.2008, 18:53
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
header("Location: _______105.rar");
|
|
|

25.02.2008, 19:04
|
|
Участник форума
Регистрация: 02.01.2008
Сообщений: 116
Провел на форуме: 1013405
Репутация:
58
|
|
эт дописать нужно?
|
|
|

25.02.2008, 19:11
|
|
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме: 3986705
Репутация:
1403
|
|
АНЕЕЕЕЕЕТ!
Стой
header(); нужно писать в самое начала файла, т.е. до открытия <html>
PHP код:
<?php
header();
?>
<html>
<head>
<title>хз</title>
</head>
<body>
Скачивание...
</body>
</html>
А вообще грамотней будет делать на JavaScript
Последний раз редактировалось bul.666; 25.02.2008 в 19:14..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|