[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемма из-за кодировке в http-запросе
IamSmorodin
Получаю переменные методом Get, и переменную $text перекодирую в cp1251

PHP
$from $_GET['from'];
$phone $_GET['phone'];
$text $_GET['text'];
$id_sms $_GET['id'];
$coding 2;

$unicode=array(chr(208).chr(144),chr(208).chr(145),chr(208).chr(146),chr(208).chr(147),chr(208).chr(148),chr(208).chr(149),chr(208).chr(150),chr(208).chr(151),chr(208).chr(152),chr(208).chr(153),chr(208).chr(154),chr(208).chr(155),chr(208).chr(156),chr(208).chr(157),chr(208).chr(158),chr(208).chr(159),chr(208).chr(160),chr(208).chr(161),chr(208).chr(162),chr(208).chr(163),chr(208).chr(164),chr(208).chr(165),chr(208).chr(166),chr(208).chr(167),chr(208).chr(168),chr(208).chr(169),chr(208).chr(170),chr(208).chr(171),chr(208).chr(172),chr(208).chr(173),chr(208).chr(174),chr(208).chr(175),chr(208).chr(176),chr(208).chr(177),chr(208).chr(178),chr(208).chr(179),chr(208).chr(180),chr(208).chr(181),chr(208).chr(182),chr(208).chr(183),chr(208).chr(184),chr(208).chr(185),chr(208).chr(186),chr(208).chr(187),chr(208).chr(188),chr(208).chr(189),chr(208).chr(190),chr(208).chr(191),chr(209).chr(128),chr(209).chr(129),chr(209).chr(130),chr(209).chr(131),chr(209).chr(132),chr(209).chr(133),chr(209).chr(134),chr(209).chr(135),chr(209).chr(136),chr(209).chr(137),chr(209).chr(138),chr(209).chr(139),chr(209).chr(140),chr(209).chr(141),chr(209).chr(142),chr(209).chr(143),chr(209).chr(145),chr(208).chr(129)); 
$win=array(chr(192),chr(193),chr(194),chr(195),chr(196),chr(197),chr(198),chr(199),chr(200),chr(201),chr(202),chr(203),chr(204),chr(205),chr(206),chr(207),chr(208),chr(209),chr(210),chr(211),chr(212),chr(213),chr(214),chr(215),chr(216),chr(217),chr(218),chr(219),chr(220),chr(221),chr(222),chr(223),chr(224),chr(225),chr(226),chr(227),chr(228),chr(229),chr(230),chr(231),chr(232),chr(233),chr(234),chr(235),chr(236),chr(237),chr(238),chr(239),chr(240),chr(241),chr(242),chr(243),chr(244),chr(245),chr(246),chr(247),chr(248),chr(249),chr(250),chr(251),chr(252),chr(253),chr(254),chr(255),chr(184),chr(168)); 
$text rawurldecode($text);
$text str_replace($unicode,$win,$text);


Вроде все хорошо.
Потом делаю http-запрос:

PHP
$host "http://http.xxxxx.ru/";
$param="user=$login&pass=$pass&from=".urlencode($from)."&to=$to&text=".urlencode($text)."&coding=
$coding&charset=cp1251"
;
$url="$host?$param";


Мне надо чтобы переменная $text была url-encoded. Выполнение запроса не просиходит url-запрос становится в кодировке ASCII, а мне надо в UTF8. Не понимаю, если не делать urlencode для $text, то все остается в UTF8. Кто поможет разобраться. iconv не работаетб переменная $text становится пуста.



Спустя 24 минуты, 8 секунд (23.09.2009 - 13:58) IamSmorodin написал(а):
Короче поразбирался... Если $text - переменная лишь с латинскими буквами, то запрос обрабатывается, если есть русские - то все, капут, запрос ни ногой... уже не знаю, что пробывать... sad.gif

Спустя 20 часов, 50 минут, 34 секунды (24.09.2009 - 10:48) IamSmorodin написал(а):
Вот весь скрипт:

PHP
<?PHP
$from 
$_GET['from'];
$phone $_GET['phone'];
$text $_GET['text'];
$id_sms $_GET['id'];
$coding 2;

$unicode=array(chr(208).chr(144),chr(208).chr(145),chr(208).chr(146),chr(208).chr(147),chr(208).chr(148),chr(208).chr(149),chr(208).chr(150),chr(208).chr(151),chr(208).chr(152),chr(208).chr(153),chr(208).chr(154),chr(208).chr(155),chr(208).chr(156),chr(208).chr(157),chr(208).chr(158),chr(208).chr(159),chr(208).chr(160),chr(208).chr(161),chr(208).chr(162),chr(208).chr(163),chr(208).chr(164),chr(208).chr(165),chr(208).chr(166),chr(208).chr(167),chr(208).chr(168),chr(208).chr(169),chr(208).chr(170),chr(208).chr(171),chr(208).chr(172),chr(208).chr(173),chr(208).chr(174),chr(208).chr(175),chr(208).chr(176),chr(208).chr(177),chr(208).chr(178),chr(208).chr(179),chr(208).chr(180),chr(208).chr(181),chr(208).chr(182),chr(208).chr(183),chr(208).chr(184),chr(208).chr(185),chr(208).chr(186),chr(208).chr(187),chr(208).chr(188),chr(208).chr(189),chr(208).chr(190),chr(208).chr(191),chr(209).chr(128),chr(209).chr(129),chr(209).chr(130),chr(209).chr(131),chr(209).chr(132),chr(209).chr(133),chr(209).chr(134),chr(209).chr(135),chr(209).chr(136),chr(209).chr(137),chr(209).chr(138),chr(209).chr(139),chr(209).chr(140),chr(209).chr(141),chr(209).chr(142),chr(209).chr(143),chr(209).chr(145),chr(208).chr(129)); 
$win=array(chr(192),chr(193),chr(194),chr(195),chr(196),chr(197),chr(198),chr(199),chr(200),chr(201),chr(202),chr(203),chr(204),chr(205),chr(206),chr(207),chr(208),chr(209),chr(210),chr(211),chr(212),chr(213),chr(214),chr(215),chr(216),chr(217),chr(218),chr(219),chr(220),chr(221),chr(222),chr(223),chr(224),chr(225),chr(226),chr(227),chr(228),chr(229),chr(230),chr(231),chr(232),chr(233),chr(234),chr(235),chr(236),chr(237),chr(238),chr(239),chr(240),chr(241),chr(242),chr(243),chr(244),chr(245),chr(246),chr(247),chr(248),chr(249),chr(250),chr(251),chr(252),chr(253),chr(254),chr(255),chr(184),chr(168)); 
$text str_replace($unicode,$win,$text);

include(
"config.php");

$host "http://http.xxxxx.ru/";
$param="user=$login&pass=$pass&from=".urlencode($from)."&to=$phone&text=".urlencode($text)."&coding=
$coding&charset=cp1251"
;

$url="$host?$param";

$ch=curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$result curl_exec($ch);
curl_close ($ch);

$data time();
$usertable "sms";
$smsquery mysql_query("SELECT * FROM $usertable WHERE id='$id_sms' ") or die(mysql_error());
if (
$sms mysql_fetch_array($smsquery))
{
$name $sms['name'];
}

include(
"config.php");
$usertable "sent";
$smsquery mysql_query("INSERT INTO $usertable (`name`,`phone`,`date`,`id_sms`) VALUES ('$name','$phone','$data','$id_sms')") or die(mysql_error());



Кто поможет разобраться с кирилицей?


_____________
Мой Twitter
Подписывайтесь :)
Быстрый ответ:

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