на другой.
массив с данными:
$data = array(
'id' => 123,
'source' => 'call'
)
функция для отправки:
function SendData($data = array()) {
$data_json = json_encode($data);
$string = http_build_query($data_json);
// отправляем на этот сервер
$url = 'some server';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_json)));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$responce = curl_exec($ch);
if ($responce === FALSE) {
$error = '$url' . curl_error($ch);
file_put_contents(__DIR__ . '/log/senddataLog.txt', $error);
}
else {
file_put_contents(__DIR__ . '/log/senddataLog.txt', 'Not error');
}
curl_close($ch);
}
// тут вызываем функцию
SendData($data)
Вопросы:
1. Как правильно принять эти данные на том сервере, куда отправил
2. Правильна ли эта функция? может в ней накосячил?
П.С. на втором сервере есть такой код:
$data = $_POST['data'];
$result = json_decode($data);
echo 'Вы прислали следующие данные:' .print_r($result, true);
file_put_contents перезатрет же) Или там не жалко, лишь бы последнее было видно?
Обсуждают сегодня