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

29.08.2009, 16:09
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
Провел на форуме: 1698585
Репутация:
818
|
|
Функция определения кодировки:
PHP код:
<?php
define('LOWERCASE',3);
define('UPPERCASE',1);
function detect_cyr_charset($str) {
$charsets = Array(
'k' => 0,
'w' => 0,
'd' => 0,
'i' => 0,
'm' => 0
);
for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
$char = ord($str[$i]);
//non-russian characters
if ($char < 128 || $char > 256) continue;
//CP866
if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
$charsets['d']+=LOWERCASE;
if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;
//KOI8-R
if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;
//WIN-1251
if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;
//MAC
if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;
//ISO-8859-5
if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;
}
arsort($charsets);
return key($charsets);
}
?>
|
|
|

29.08.2009, 16:15
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от b3
Функция определения кодировки:
PHP код:
<?php
define('LOWERCASE',3);
define('UPPERCASE',1);
function detect_cyr_charset($str) {
$charsets = Array(
'k' => 0,
'w' => 0,
'd' => 0,
'i' => 0,
'm' => 0
);
for ( $i = 0, $length = strlen($str); $i < $length; $i++ ) {
$char = ord($str[$i]);
//non-russian characters
if ($char < 128 || $char > 256) continue;
//CP866
if (($char > 159 && $char < 176) || ($char > 223 && $char < 242))
$charsets['d']+=LOWERCASE;
if (($char > 127 && $char < 160)) $charsets['d']+=UPPERCASE;
//KOI8-R
if (($char > 191 && $char < 223)) $charsets['k']+=LOWERCASE;
if (($char > 222 && $char < 256)) $charsets['k']+=UPPERCASE;
//WIN-1251
if ($char > 223 && $char < 256) $charsets['w']+=LOWERCASE;
if ($char > 191 && $char < 224) $charsets['w']+=UPPERCASE;
//MAC
if ($char > 221 && $char < 255) $charsets['m']+=LOWERCASE;
if ($char > 127 && $char < 160) $charsets['m']+=UPPERCASE;
//ISO-8859-5
if ($char > 207 && $char < 240) $charsets['i']+=LOWERCASE;
if ($char > 175 && $char < 208) $charsets['i']+=UPPERCASE;
}
arsort($charsets);
return key($charsets);
}
?>
данный код не верно определяет кодировку в некоторых случаях.
Текст, набранный ЗАГЛАВНЫМИ БУКВАМИ определяет как KOI-8, а не win-1251
и
Текст, набранный только заглавными в ср1251 или только строчными в koi8-r попадает в один и тот же диапазон символов(191..224), так что однозначно определить кодировку попросту невозможно. И это ещё не учли unicode...
привиденная мною библиотека более корректно определяет кодировку, да и по сабжу больше походит.
|
|
|

29.08.2009, 16:26
|
|
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме: 175879
Репутация:
3
|
|
ну с определением кодировки я разобрался, как перекодировать в windows-1251? дело в том, что я пишу icq бота с webicqlite классом, так как большинство функций про класса не требуется, данные выводятся в utf8, и я никак не могу перекодировать их в windows-1251, киньте пжлста какойнить скрипт для кодирования!
|
|
|

29.08.2009, 16:29
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от Большой джо
ну с определением кодировки я разобрался, как перекодировать в windows-1251? дело в том, что я пишу icq бота с webicqlite классом, так как большинство функций про класса не требуется, данные выводятся в utf8, и я никак не могу перекодировать их в windows-1251, киньте пжлста какойнить скрипт для кодирования!
вы мои посты не видите?!я описал два метода...
1-http://popoff.donetsk.ua/text/work/libs/a/charset/ подключите библиотеку для конверта в cp1251
2-метод которым пользуюсь, тоже повзаимствованный, if (preg_match('//u', $string)) { /* у вас UTF-8 */ }
в чем проблема?!совместите два метода и дейлате что хотите.
|
|
|

29.08.2009, 16:32
|
|
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме: 175879
Репутация:
3
|
|
извиняюсь, пропустил посты, всё норма работает, спс =)
|
|
|

29.08.2009, 17:03
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
|
|
|

29.08.2009, 17:09
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от Fepsis
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
set-cookie: ...
|
|
|

29.08.2009, 17:12
|
|
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме: 6962560
Репутация:
536
|
|
Сообщение от RedBull@12
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
set-cookie: ...
Так страницу то саму он выводит... set-cookie: в HEADER нету...
|
|
|

29.08.2009, 17:18
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
Сообщение от Fepsis
Так страницу то саму он выводит... set-cookie: в HEADER нету...
если хедеры в выводе у тебя есть. но там нету set-cookie, значит сервер НЕ назначает куки. скорее всего сервер распознал тебя как бота.
когда говорил про запрос, имел ввиду не стандарты, а ответы от сервера, то что сервер не считает нужным отдавать куки, либо посмотри может куки назначаются по средствам JavaScript'а
|
|
|

29.08.2009, 19:38
|
|
Познающий
Регистрация: 18.04.2009
Сообщений: 33
Провел на форуме: 260138
Репутация:
2
|
|
Есть страница, там пользователь заполняет свои данные имя, фамилия, емейл и т.д. как сделать так чтобы после заполнение к нему на емейл присылалось письмо с моим текстом? все переменные выставлены и записываются в один файл ну и емейл тоже. Я с php просто не дружу вообще 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|