HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 29.08.2009, 15:16
Большой джо
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме:
175879

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

спс, ща буду пробовать
 
Ответить с цитированием

  #2  
Старый 29.08.2009, 15:52
Большой джо
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме:
175879

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

неа, всё равно, выскакивает � ����4�3�4�5
 
Ответить с цитированием

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

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

Цитата:
Сообщение от Большой джо  
неа, всё равно, выскакивает � ����4�3�4�5
на iconv действует нукоторое ограничение.+ не всегда mb_detect_encoding может определить кодировку.
как вариант, но тоже не 100%
http://popoff.donetsk.ua/text/work/libs/a/charset/
лично я для определния utf-8 использую вот это условие
PHP код:
if (preg_match('//u'$string)) { /* у вас UTF-8 */ 

Последний раз редактировалось RedBull@12; 29.08.2009 в 15:59..
 
Ответить с цитированием

  #4  
Старый 29.08.2009, 16:09
b3
Постоянный
Регистрация: 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);
}
?>
 
Ответить с цитированием

  #5  
Старый 29.08.2009, 16:15
RedBull@12
Участник форума
Регистрация: 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...
привиденная мною библиотека более корректно определяет кодировку, да и по сабжу больше походит.
 
Ответить с цитированием

  #6  
Старый 29.08.2009, 16:26
Большой джо
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме:
175879

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

ну с определением кодировки я разобрался, как перекодировать в windows-1251? дело в том, что я пишу icq бота с webicqlite классом, так как большинство функций про класса не требуется, данные выводятся в utf8, и я никак не могу перекодировать их в windows-1251, киньте пжлста какойнить скрипт для кодирования!
 
Ответить с цитированием

  #7  
Старый 29.08.2009, 16:29
RedBull@12
Участник форума
Регистрация: 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 */ }
в чем проблема?!совместите два метода и дейлате что хотите.
 
Ответить с цитированием

  #8  
Старый 29.08.2009, 16:32
Большой джо
Познающий
Регистрация: 28.06.2009
Сообщений: 56
Провел на форуме:
175879

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

извиняюсь, пропустил посты, всё норма работает, спс =)
 
Ответить с цитированием

  #9  
Старый 29.08.2009, 17:03
Fepsis
Постоянный
Регистрация: 17.09.2008
Сообщений: 562
Провел на форуме:
6962560

Репутация: 536


По умолчанию

При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
 
Ответить с цитированием

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

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

Цитата:
Сообщение от Fepsis  
При заходе на линк курлом куки не сохраняются CURLOPT_COOKIEJAR, в HEADER куки тоже отсутствуют, хотя когда захожу браузером на линк, они (куки) устанавливаются..
Как их можно вытащить скриптом..?! Где они могут храниться..?!
если в хедере нету то непраивльный запрос.
потому что в хедере должна быть строка
set-cookie: ...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



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


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




ANTICHAT ™ © 2001- Antichat Kft.