Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.04.2006, 17:36
atillus вне форума Посмотреть профиль Отправить личное сообщение для atillus Найти все сообщения от atillus
  № 1  
Ответить с цитированием
atillus

Регистрация: Apr 2006
Сообщений: 4
По умолчанию Спотыкаюсь об амперсанд при передаче методом post используя CURL

Добрый день!
Господа PHP программеры! Помогите решить проблему! Использую CURL...
<?
$textvar="Tom & Jerry";
$params="var1=1&var2=".$textvar;
$user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://site.com');
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_exec($ch);
curl_close($ch);
?>
Проблема в том, что до 'получателя' переменная $textvar доходит ровно до знака & (амперсанд), и отрезается. Пробовал заменить знак "&" на "%38" - в этом случае почему то доходит только "8" (а "%3" заменяется на соответсвующий символ).
Помогите плиз! Как методом POST передается амперсанд, чтоб получатель воспринял его как текст и не спотыкался!

Старый 15.04.2006, 18:10
atillus вне форума Посмотреть профиль Отправить личное сообщение для atillus Найти все сообщения от atillus
  № 2  
Ответить с цитированием
atillus

Регистрация: Apr 2006
Сообщений: 4
Проблему решил сам. Нужно заменять амперсанды на "%26" - не понимаю, почему не на 38 (ASCII код амперсанда), кто объяснит?

Старый 15.04.2006, 18:34
-MS- вне форума Посмотреть профиль Отправить личное сообщение для -MS- Найти все сообщения от -MS-
  № 3  
Ответить с цитированием
-MS-
 
Аватар для -MS-

Регистрация: Jun 2005
Сообщений: 367
вот тебе функция которая ассоциативный массив перегоняет в строку для пост запроса
function PostGenerator($in = array())
{
$tmp = NULL;
foreach ($in as $k=>$v)
{
$tmp .= "$k=" . utf8_encode($v) . "&";
}
$out = substr($tmp, 0, -1);
return $out;
}
скорее всего у тя проблемы с кодировкой, должна быть utf8
__________________
[MScoder]

Старый 17.04.2006, 15:29
lizergil вне форума Посмотреть профиль Отправить личное сообщение для lizergil Найти все сообщения от lizergil
  № 4  
Ответить с цитированием
lizergil
 
Аватар для lizergil

Регистрация: Jan 2002
Адрес: Королёв
Сообщений: 735
Отправить сообщение для lizergil с помощью ICQ Отправить сообщение для lizergil с помощью Yahoo
Код:
$params = urlencode("var1=1&var2=".$textvar);
а лучше:

Код:
$params['var1'] = '1';
$params['var2'] = $textvar;

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:01.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.