ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2051  
Старый 25.02.2008, 01:26
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Есть сайт, есть право на запись в одну диру, нужен скрипт чтобы сделать бэкап сайта в эту диру в виде архива. Как это сделать не используя системных комманд?
 
Ответить с цитированием

  #2052  
Старый 25.02.2008, 01:43
Piflit
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме:
5128756

Репутация: 2032


Отправить сообщение для Piflit с помощью ICQ
По умолчанию

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..
 
Ответить с цитированием

  #2053  
Старый 25.02.2008, 01:47
RedBull@12
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме:
482261

Репутация: 58
По умолчанию

Цитата:
Сообщение от Piflit  
Kaimi сделай crawler. идешь в самую верхнюю диру и оттуда спускаешься вниз.
да это в прицине и так понятно, лично меня заинтересовал вопрс,
Цитата:
бэкап сайта в эту диру в виде архива
.
как вот эту ситуацию обойти?
 
Ответить с цитированием

  #2054  
Старый 25.02.2008, 01:53
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

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->fppack("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($path2strlen($path));
                } elseif (
is_dir($path)) {
                    
$output[] = substr($path2strlen($path)).'/';
                    
$output array_merge($output$this->build_tree($path));
                }
            }
        }
        
closedir($handle);
        return 
$output;
    }
    function 
process_tree($tree) {
        foreach( 
$tree as $pathfile ) {
            if (
substr($pathfile, -11) == '/') {
                
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->fpfile_get_contents($pathfile));
                
fputs($this->fppack("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 архив всех файлов в той директории, где скрипт
Подправь ^^
 
Ответить с цитированием

  #2055  
Старый 25.02.2008, 01:57
RedBull@12
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме:
482261

Репутация: 58
По умолчанию

bul.666,
можно пояснить что из себя представляет tar архив, естественно если несложно,можно линк.
 
Ответить с цитированием

  #2056  
Старый 25.02.2008, 01:58
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

http://ru.wikipedia.org/wiki/Tar
 
Ответить с цитированием

  #2057  
Старый 25.02.2008, 18:46
D1mka
Участник форума
Регистрация: 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
А когда открываю эту страничку в броузере нечего непроисходит, шо мине делать?
 
Ответить с цитированием

  #2058  
Старый 25.02.2008, 18:53
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

header("Location: _______105.rar");
 
Ответить с цитированием

  #2059  
Старый 25.02.2008, 19:04
D1mka
Участник форума
Регистрация: 02.01.2008
Сообщений: 116
Провел на форуме:
1013405

Репутация: 58
По умолчанию

эт дописать нужно?
 
Ответить с цитированием

  #2060  
Старый 25.02.2008, 19:11
bul.666
Banned
Регистрация: 06.06.2006
Сообщений: 944
Провел на форуме:
3986705

Репутация: 1403


Отправить сообщение для bul.666 с помощью ICQ
По умолчанию

АНЕЕЕЕЕЕТ!
Стой

header(); нужно писать в самое начала файла, т.е. до открытия <html>
PHP код:
<?php
header
();
?>
<html>
<head>
<title>хз</title>
</head>
<body>
Скачивание...
</body>
</html>
А вообще грамотней будет делать на JavaScript

Последний раз редактировалось bul.666; 25.02.2008 в 19:14..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Delphi, .NET, Asm 5420 17.06.2010 13:33
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ