За последние 24 часа нас посетили 21933 программиста и 988 роботов. Сейчас ищут 662 программиста ...

Экспорт в ЖЖ кодировка

Тема в разделе "PHP для новичков", создана пользователем newnoob, 28 ноя 2007.

  1. newnoob

    newnoob Активный пользователь

    С нами с:
    8 авг 2006
    Сообщения:
    151
    Симпатии:
    0
    Сабж, проблемы с кодировкой.

    Код:

    Код (Text):
    1.  
    2. function win2uni($text)
    3. {
    4.     //  win1251 -> iso8859-5
    5.     $text = convert_cyr_string($text,'w','i');
    6.  
    7.     //  iso8859-5 -> unicode:
    8.     for ($result='', $i=0; $i<strlen($text); $i++)
    9.     {
    10.         $charcode = ord($text[$i]);
    11.         $result .= html_entity_decode(($charcode>175)?"&#".(1040+($charcode-176)).";":$text[$i]);
    12.     }
    13.  
    14. return $result;
    15. }
    16.  
    17. function LJ_Crossposter($data)
    18. {
    19.     $host = 'www.livejournal.com';
    20.     $user = 'login';
    21.     $pass = md5('pass');
    22.  
    23.     $client = new IXR_Client($host, '/interface/xmlrpc');
    24.  
    25.     if (!$client->query('LJ.XMLRPC.getchallenge'))
    26.     {
    27.         echo 'Error client query - '.$client->getErrorCode().' : '.$client->getErrorMessage();
    28.     }
    29.  
    30.     $response = $client->getResponse();
    31.     $challenge = $response['challenge'];
    32.  
    33.     $date = strtotime(''. $data['date'] .'');
    34.  
    35.     $lj_text = str_replace('[center]', '', $data['text']);
    36.     $lj_text = str_replace('[/center]', '', $lj_text);
    37.  
    38.     $lj_text = str_replace('[thumb]', '<img src="', $lj_text);
    39.     $lj_text = str_replace('[/thumb]', '" border="0">', $lj_text);
    40.  
    41.         $lj_text = win2uni($lj_text);
    42.     $lj_text = nl2br($lj_text);
    43.     $lj_text = str_replace('\r\n', "\r\n", $lj_text);
    44.     $lj_text = stripslashes($lj_text);
    45.  
    46.         $lj_subj = win2uni($data['title']);
    47.         $lj_subj = stripslashes($lj_subj);
    48.  
    49.     $args = array();
    50.     $args['username'] = $user;
    51.     $args['auth_method'] = 'challenge';
    52.     $args['auth_challenge'] = $challenge;
    53.     $args['auth_response'] = md5($challenge . $pass);
    54.     $args['ver'] = "1";
    55.     $args['event'] = "$lj_text";
    56.     $args['subject'] = "$lj_subj";
    57.     $args['year'] = date('Y', $date);
    58.     $args['mon'] = date('n', $date);
    59.     $args['day'] = date('j', $date);
    60.     $args['hour'] = date('G', $date);
    61.     $args['min'] = date('i', $date);
    62.  
    63.     if (!$client->query('LJ.XMLRPC.postevent', $args)) {
    64.         echo 'Error adding arguments - '.$client->getErrorCode().' : '.$client->getErrorMessage();
    65.     }
    66. }
    Приходит в ЖЖ в таком виде:

    Вечерняя подбор&:

    P.S. Решение рабочее и проблем не возникает, но вот кодировка задолбала уже ):
     
  2. Mavir

    Mavir Guest

    Может проще заменить на iconv()?