[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: WebIcqPro.class.php
koshkarjov
Кто работал с этим классом, скажите что надо сделать, чтобы буковки русские были, а не странные кракозябры, а то я не вкурил в кодировку совсем...

Пробовал сделать вот так, но не прокатило =/
PHP
$qweqwe = mb_convert_encoding($msg['message'], "windows-1251");
$icq->send_message($msg['from'], $qweqwe);

Собственно вот сам код ↓
PHP
<?php
require_once('WebIcqPro.class.php');
define("UIN",         "Номер аськи");
define("PASSWORD",    "Пароль");
define("STARTSTATUS", "STATUS_FREE4CHAT");

$text = "Сообщение";

$icq = new WebIcqPro();
$icq->setOption("UserAgent", "miranda");

if(
$icq->connect(UIN, PASSWORD)){
    $icq->setStatus(STARTSTATUS, "STATUS_DCCONT", "Go Jabber!");
}else{
    echo $icq->error;
    exit();
}
$icq->activateOfflineMessages(UIN);

while(
$icq->isConnected()){
    $msg = $icq->readMessage();
    if ( isset($msg['from']) && isset($msg['message']) ){
        echo 'msg from '.$msg['from']."\n";
        $icq->sendMessage($msg['from'], $text);
    }
    flush();
    sleep(1);
}


P.S.: В php разбираюсь не очень хорошо, так что если можно поподробнее, пожалуйста smile.gif



Спустя 6 минут, 49 секунд (13.07.2009 - 21:44) Nikitian написал(а):
PHP
$icq->send_message($msg['from'], iconv('cp1251','utf-8',$qweqwe));

Насколько я помню, аська в utf'е общается.

Спустя 17 минут, 10 секунд (13.07.2009 - 22:01) koshkarjov написал(а):
Тогда вставляю это в код ↓
PHP
<?php
require_once('WebIcqPro.class.php');
define("UIN",         "Номер аськи");
define("PASSWORD",    "Пароль");
define("STARTSTATUS", "STATUS_FREE4CHAT");

$text = "Сообщение";

$icq = new WebIcqPro();
$icq->setOption("UserAgent", "miranda");

if(
$icq->connect(UIN, PASSWORD)){
    $icq->setStatus(STARTSTATUS, "STATUS_DCCONT", "Go Jabber!");
}else{
    echo $icq->error;
    exit();
}
$icq->activateOfflineMessages(UIN);

while(
$icq->isConnected()){
    $msg = $icq->readMessage();
    if ( isset($msg['from']) && isset($msg['message']) ){
        echo 'msg from '.$msg['from']."\n";
        $icq->sendMessage($msg['from'], iconv('cp1251','utf-8',$text));
    }
    flush();
    sleep(1);
}

В итоге все равно получается сообщение типа такого: Здравствуйте! =/

Спустя 4 часа, 11 минут, 6 секунд (14.07.2009 - 02:12) ВитЁЁк написал(а):
if (isset($msg['encoding']))
{
if ($msg['encoding']['numset'] == 'UNICODE')
{
$msg['realmessage'] = $msg['message'];
$msg['message'] = mb_convert_encoding($msg['message'], 'cp1251', 'UTF-16');
}
if ($msg['encoding']['numset'] == 'UTF-8')
{
$msg['realmessage'] = $msg['message'];
$msg['message'] = mb_convert_encoding($msg['message'], 'cp1251', 'UTF-8');
}
}

попробуй.. у меян так работает..
угумс)

Спустя 18 часов, 58 минут, 23 секунды (14.07.2009 - 21:11) koshkarjov написал(а):
О, вот сейчас заработало! smile.gif ВитЁЁк спасибо большое!)

P.S.: Мир тесен, куда не глянь, везде люди из qweqwe...)

P.P.S.: Счастье длилось недолго: You are using an older version of ICQ. Upgrade required =/
Насколько я понял надо найти более новый WebIcqPro.class.php?

Спустя 4 часа, 7 минут, 24 секунды (15.07.2009 - 01:18) ВитЁЁк написал(а):
не за что)

да, я не сталкивался с этой шибкой... но сейчас я юзаю WebIcqPro.class.php.
http://wip.asminog.com/workshop/webicqpro/webicqpro.html взял отсюдова, там и краткий мануал есть, все интуитивное понятно)

PS
qweqwe ^^

Спустя 1 день, 18 часов, 25 минут, 58 секунд (16.07.2009 - 19:44) koshkarjov написал(а):
Исправил ошибку ↓
1) Находим функцию ClientMd5Login, в ней удаляем строку
PHP
$this->packTLV(0x16, 0x010A, 'n').

2) Вот эти строки
PHP
$this->packTLV(0x0F, 'ru').
$this->packTLV(0x0E, 'ru');

заменяем на
PHP
$this->packTLV(0x0F, 0x02, 'ru').
$this->packTLV(0x0E, 0x02, 'ru');

© http://wip.asminog.com/forum/index.php/topic,461.0.html

Но сейчас вылазит другая ошибка: Call to undefined function mb_convert_encoding() =/
Гугл говорит что надо php_mbstring.dll
Скачал ее, установил, все равно не работает =/
Использую Denwer для всего этого дела... Или лучше ставить Apache + Mysql + Php?

Спустя 38 минут, 42 секунды (16.07.2009 - 20:23) Guest написал(а):
Цитата
Но сейчас вылазит другая ошибка: Call to undefined function mb_convert_encoding() =/
Гугл говорит что надо php_mbstring.dll
Скачал ее, установил, все равно не работает =/


а зачем ее скачивать? она у меян уже была пыхе.. ее просто разкомментить надо было.. хотя там какая-то версия должна быть не маленькая чтоб её юзать...
вообщем попробуй iconv();
Цитата
string iconv (string in_charset, string out_charset, string str)
Функция выполняет преобразование строки str из кодировки in_charset в out_charset. Возвращает преобразованную строку или FALSE в случае неудачи.


и огромное спасибо за
Цитата
Исправил ошибку ↓
1) Находим функцию ClientMd5Login, в ней удаляем строку
PHP
$this->packTLV(0x16, 0x010A, 'n').

2) Вот эти строки
PHP
$this->packTLV(0x0F, 'ru').
$this->packTLV(0x0E, 'ru');

заменяем на
PHP
$this->packTLV(0x0F, 0x02, 'ru').
$this->packTLV(0x0E, 0x02, 'ru');

© http://wip.asminog.com/forum/index.php/topic,461.0.html


реально помогло.. угумс =)

Спустя 6 дней, 11 часов, 44 минуты, 4 секунды (23.07.2009 - 08:07) Гость_aver написал(а):
Цитата (ВитЁЁк @ 13.07.2009 - 23:12)
if (isset($msg['encoding']))
{
if ($msg['encoding']['numset'] == 'UNICODE')
{
  $msg['realmessage'] = $msg['message'];
  $msg['message'] = mb_convert_encoding($msg['message'], 'cp1251', 'UTF-16');
}
if ($msg['encoding']['numset'] == 'UTF-8')
{
  $msg['realmessage'] = $msg['message'];
  $msg['message'] = mb_convert_encoding($msg['message'], 'cp1251', 'UTF-8');
}
}

попробуй.. у меян так работает..
угумс)

Чето всеравно у меня кракозябры вылезют в ответе от бота........... blink.gif
Можно рабочий пример со вставленным куском кода.

Спустя 3 часа, 8 минут, 12 секунд (23.07.2009 - 11:15) ВитЁЁк написал(а):
PHP
<?php
//
include('WebIcqPro.class.php');

define('UIN''1111111111111111111111');     
define('PASSWORD''qweqweqweqweqweqwe');     


$icq = new WebIcqPro();

if(!
$icq->connect(UINPASSWORD))
{
    echo 
"ERROR!\n";
    echo 
$icq->error."\n";
    exit();
}

while(
$icq->isConnected())
{
    
$msg $icq->readMessage();
     if (isset(
$msg['encoding']))
    {
        if (
$msg['encoding']['numset'] == 'UNICODE')
        {
            
$msg['realmessage'] = $msg['message'];
            
$msg['message'] = mb_convert_encoding($msg['message'], 'cp1251''UTF-16');
        }
        if (
$msg['encoding']['numset'] == 'UTF-8')
        {
            
$msg['realmessage'] = $msg['message'];
            
$msg['message'] = mb_convert_encoding($msg['message'], 'cp1251''UTF-8');
        }
    }
    if (isset(
$msg['type']) && $msg['type'] == 'message')
    {
        if(
$msg['message'] == "exit();" || $msg['message'] == "выход")
        {
            
$icq->sendMessage($msg['from'], 'пару секунд подожди...');
            
Sleep(3);
            
$icq->disconnect();
            exit();

        }
        else
            
$icq->sendMessage($msg['from'], 'Зачем ты  мне написал '.$msg['message'].'?!');

    }
    
Sleep(1);
}



у меян этот код работает нормально...
ты какой класс юзаешь? про?

Спустя 7 дней, 2 часа, 32 минуты, 2 секунды (30.07.2009 - 13:47) Гость_aver написал(а):
Cпасиб все нормально заработало, когда поменял кодирокву самого php файла на ansi! biggrin.gif

Спустя 2 дня, 12 часов, 25 минут, 22 секунды (3.08.2009 - 02:12) Гость_PHPCoder написал(а):
Хороший класс. Мне понравился. Только не могу понять, почему сообщение "!test" он выводит в виде: " ! t e s t"... Не подскажете?

Спустя 7 месяцев, 3 дня, 17 часов, 30 минут, 56 секунд (6.03.2010 - 20:43) SeTT.MF написал(а):
У Меня Вот Так Нормально Работает...
		if($msg['message'] != '' && is_string($msg['message']) && (strstr($msg['message'], "\x00") || strstr($msg['message'], "\x04")))    {
if(function_exists('iconv')) $msg['message'] = iconv('utf-16be', 'cp1251', $msg['message']);
elseif(function_exists('mb_convert_encoding')) $msg['message'] = mb_convert_encoding($msg['message'], 'cp1251', 'utf-16be');
}

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.