[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: CURL
Страницы: 1, 2
qari
есть такой момент отправки XML и получения результата:

function getRequest($xml) {

$ch = curl_init();
$data = array('req' => urlencode($xml));

curl_setopt($ch, CURLOPT_URL, $this->urlRequest);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);
curl_close($ch);

return $response;
}


1. Как сделать чтоб результат кидало просто в переменную а не показывало его на экран. Подставлял вот это:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);


не помогло.

Так же результат идет в заодированом URL.
%0A%09%09%09%3CmonexyApi+type%3D%22payment-req%22+mtime%3D%22135742799317775%22%3E%0A%09%09%09%09%3CAuth%3E%0A%09%09%09%09%09%3CApiName%3E+tedfdf+%3C%2FApiName%3E%0A%09%09%09%09%09%3CApiHash%3Eef2ccfc7b495c33717ac5ed83e4bc58f3aaf6a50%3C%2FApiHash%3E%0A%09%09%09%09%3C%2FAuth%3E%0A%09%09%09%09%3CError+ErrorId%3D%22710%22%3E%0A%09%09%09%09%09%3CErrorDesc%3EPayee+not+found%3C%2FErrorDesc%3E%0A%09%09%09%09%3C%2FError%3E%0A%09%09%09%09%3CsmsInfo%3E%0A%09%09%09%09%09%3CsmsId%3E%3C%2FsmsId%3E%0A%09%09%09%09%3C%2FsmsInfo%3E%0A%09%09%09%3C%2FmonexyApi%3E%0A%09%09%09bool(true)


Как его довести в нормальный вид XML?
killer8080
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
qari
Цитата (killer8080 @ 5.01.2013 - 23:45)
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

с этим разобрался. Вот как теперь распарсить XML строку не пойму из за того что она закодирована.
killer8080
Цитата (qari @ 6.01.2013 - 01:48)
Вот как теперь распарсить XML строку не пойму из за того что она закодирована.

ну так раскодируй biggrin.gif
qari
Цитата (killer8080 @ 5.01.2013 - 23:49)
Цитата (qari @ 6.01.2013 - 01:48)
Вот как теперь распарсить XML строку не пойму из за того что она закодирована.

ну так раскодируй biggrin.gif

так как? smile.gif

urldecode($str);

возвращает только данные и много чего урезает.
killer8080
Цитата (qari @ 6.01.2013 - 01:53)
возвращает только данные и много чего урезает.

покажи что возвращает
qari
Цитата (killer8080 @ 5.01.2013 - 23:54)
Цитата (qari @ 6.01.2013 - 01:53)
возвращает только данные и много чего урезает.

покажи что возвращает

да вот
апи
видно по прямой
killer8080
ничего там не урезает, открой исходный хтмл в браузере и посмотри. Кстати а курл там зачем? Не проще было так?
echo '<pre>'.htmlspecialchars(urldecode(file_get_contents('http://www.monexy.com/xml/server.php?req='))).'</pre>';
killer8080
а лучше так
$xml = simplexml_load_string(urldecode(file_get_contents('http://www.monexy.com/xml/server.php?req='))); 
echo '<pre>'.print_r($xml, 1).'</pre>';
qari
Цитата (killer8080 @ 6.01.2013 - 00:07)
а лучше так
$xml = simplexml_load_string(urldecode(file_get_contents('http://www.monexy.com/xml/server.php?req='))); 
echo '<pre>'.print_r($xml, 1).'</pre>';

дело в том что мне необходимо сначала отправить XML запрос. Вот и CURL взял
killer8080
Цитата (qari @ 6.01.2013 - 02:10)
дело в том что мне необходимо сначала отправить XML запрос. Вот и CURL взял

В смысле методом POST? Да не вопрос

$data = array('req' => urlencode($xml));
$opts = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($data)
)
);

$context = stream_context_create($opts);
$content = @file_get_contents($url, false, $context);
if($content){
$response_xml = simplexml_load_string(urldecode($content));
}


UPD исправил
qari
Цитата (killer8080 @ 6.01.2013 - 00:20)
Цитата (qari @ 6.01.2013 - 02:10)
дело в том что мне необходимо сначала отправить XML запрос. Вот и CURL взял

В смысле методом POST? Да не вопрос

$data = array('req' => urlencode($xml));
$opts = array(
'http' => array(
'method' => 'POST',
'content' => http_build_query($data)
)
);

$context = context_create_stream($opts);
$content = @file_get_contents($url, false, $context);
if($content){
$response_xml = simplexml_load_string(urldecode($content));
}

Ну тут видимо у меня чегото нет:
Fatal error: Call to undefined function context_create_stream() in .....
killer8080
пардон, опечатка
stream_context_create
qari
Цитата (killer8080 @ 6.01.2013 - 00:27)
пардон, опечатка
stream_context_create

во блин, действительно работает. Этот метод лучше чем через CURL?
qari
Цитата (killer8080 @ 6.01.2013 - 00:27)
пардон, опечатка
stream_context_create

както можно проверить идет ли от меня пост запрос?
Быстрый ответ:

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