|
|
|
|
|
для: itica
(15.12.2006 в 18:55)
| | Это библиотека-обёртка для сокетов, т.е. более удобный способ сетевого взаимодействия. Клиент и сервер общаются при помощи специфического языка - протокола, для разных серверов и сервисов предназначены разные протоколы (HTTP, SMTP, FTP и т.п.). Обычно они скрыты как от клиента, так и от программиста. Сокеты и CURL позволяют реализовать протокол самостоятельно, т.е. создать на PHP клиента или сервер. | |
|
|
|
|
|
|
|
для: cheops
(16.12.2006 в 02:06)
| | А можно поподробнее о том как этим добром пользоваться? Может есть какие статьи? | |
|
|
|
|
|
|
|
для: itica
(16.12.2006 в 10:10)
| | Лучше скажите конкретную задачу для cURL. А мы Вам ее решим с комментариями :) | |
|
|
|
|
|
|
|
для: ddhvvn
(16.12.2006 в 10:14)
| | Вообще даже незнаю, может лучше и без него обойтись, нужно передавать данные другому сайту, так чтобы пользователь этого не замечал.
А с cURL самому разобраться хочется. | |
|
|
|
|
|
|
|
для: itica
(16.12.2006 в 10:45)
| | >нужно передавать данные другому сайту
тогда конечно можно использовать cURL.
<?php
$datastr="name=vladimir&data=".$data."&key1=".$value1."&name_rus=".urlencode("Владимир");
$ch=curl_init("http://www.my_super_site.ru");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $datastr);
$buf.=curl_exec($ch);
curl_close($ch);
?>
|
Вот примерный код.
Для справки можете посмотреть http://www.php.net/manual/ru/ref.curl.php | |
|
|
|
|
|
|
|
для: ddhvvn
(16.12.2006 в 11:00)
| | Посмотрел на php.net понял только то, как инициализируется и выполняется cURL, хотелось бы поподробнее узнать можно ли и как передать например $test сайту example.com методом POST.
Может есть где статься на русском подробно описывающая данное действие? | |
|
|
|
|
|
|
|
для: itica
(16.12.2006 в 11:21)
| | Я же Вам пример выше написал :-0 !
Там методом POST передаются параметры, указанные в строку $datastr. | |
|
|
|
|
|
|
|
для: ddhvvn
(16.12.2006 в 12:12)
| | Простите, не разобрался...
Если не трудно, можете прокомментировать это пример? | |
|
|
|
|
|
|
|
для: itica
(16.12.2006 в 12:19)
| |
<?php
//создаем строку с данными
$datastr="name=vladimir&data=".$data."&key1=".$value1."&name_rus=".urlencode("Владимир");
//она содержит
/*
поле name - знaчение vladimir
data - значение переменной $data (опять же просто как пример) и т.д.
...
name_rus - содержит закодированное значение слова "Владимир" (т.к. оно написано кирилицей)
*/
//инициализируем сеанс curl
$ch=curl_init("http://www.my_super_site.ru");
//настраиваем его
//отключаем вывод заголовков
curl_setopt($ch, CURLOPT_HEADER, 0);
//включаем передачу данных методом POST
curl_setopt($ch, CURLOPT_POST, 1);
//настраиваем, чтобы сеанс выводился не в браузер, а в переменную
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//указываем строку с POST-данными
curl_setopt($ch, CURLOPT_POSTFIELDS, $datastr);
//выполняем запрос
$buf=curl_exec($ch);
//закрываем сеанс cURL
curl_close($ch);
//теперь можно вывести результат запроса, если это необходимо
echo $buf;
?>
|
| |
|
|
|
|
|
|
|
для: ddhvvn
(16.12.2006 в 13:04)
| | Спасибо огромное!!! | |
|
|
|
|
|
|
|
для: itica
(16.12.2006 в 17:11)
| | А как потом можно разобрать ответ от сервера, если известно, что: "После обработки запроса Система возвращает ответ, представляющий собой набор пар <наименование параметра>=<значение>, одна пара в строке."?
Тоесть вернётся обычный массив? Или я что-то не так понимаю? | |
|
|
|
|
|
|
|
для: itica
(07.02.2007 в 13:25)
| | Вообщем в $buf содержится примерно следующее: ERR = 0 SUM = 10 ID = 1
Можно ли это как-то ввиде $ERR = 0; $SUM = 10; $ID = 1; представить?
Или можно только перебором слов перед =? | |
|
|
|
|
|
|
|
для: itica
(14.02.2007 в 00:20)
| | Так оно - одна пара на строке, или всё на одной строке скопом?
Смотреть нужно в исх. коде HTML. | |
|
|
|
|
|
|
|
для: Trianon
(14.02.2007 в 09:18)
| | Вот html ответа:
<td width="100%" align="center">
<b>Тестовый запрос:</b><br><br>
ERR = 0
SUM = 10
ID = 1</td>
|
Все html-теги мои, тоесть ответ приходит безо всяких <br> или тому подобных, вот я и не могу понять как здесь отследить перевод строки. | |
|
|
|
|
|
|
|
для: itica
(14.02.2007 в 10:01)
| |
$buf =explode('\n', trim(str_replace('\r', '', $buf)));
foreach($buf as $key => $val)
{
list($x, $y) = explode('=', $val);
$x = trim($x); $y = trim($y);
$list[$x] = $y;
}
print_r($list);
|
| |
|
|
|
|
|
|
|
для: Trianon
(14.02.2007 в 11:01)
| | Первый параметр распознается, а дальше...
Вообщем при распечатке всего массива list:
Выводит:
Если обратится к ERR:
Выводит:
Тоесть судя по всему скрипту не удаётся распознать переход строки. | |
|
|
|
|
|
|
|
для: itica
(15.02.2007 в 00:06)
| | Каким образом в $buf оказался текст? | |
|
|
|
|
|
|
|
для: Trianon
(15.02.2007 в 09:54)
| | В $buf находится ответ сервера в результате запроса, вот кусок кода:
$buf=curl_exec($ch);
curl_close($ch);
$buf =explode('\n', trim(str_replace('\r', '', $buf)));
|
| |
|
|
|
|
|
|
|
для: itica
(15.02.2007 в 10:16)
| | Ага. Ясно. Это я ошибся.
вот так верно:
$buf =explode("\n", trim(str_replace("\r", '', $buf)));
|
| |
|
|
|
|
|
|
|
для: Trianon
(15.02.2007 в 10:21)
| | Спасибо, заработало! | |
|
|
|