Есть 2 файла. Первый обращается ко второму методом post и передает json
$url = '/test.php';
$json = json_encode(['name' => 'Имя', 'phone' => '88000000000']);
$options = ['http' => [
'method' => 'POST',
'header' => 'Content-type:application/json',
'content' => http_build_query($json)
]];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
А второй должен его принимать и записывать в файл. Но я не понимаю как во втором файле получить и обработать этот json? Пробую вот так, не получается:
$fd = fopen("result.txt", 'a') or die("не удалось создать файл");
$str = $_POST.PHP_EOL;
fwrite($fd, $str);
fclose($fd);
Массив $_POST пустой, а где тогда json?
в вызывающем файле во-первых укажите полный url с протоколом и хостом. Во-вторых, не надо использовать http_build_query
, у вас же нет ассоциативного массива ключ-значение, который вы отправляете, а просто данные.
пример вызывающего
$url = 'http://test/test2.php';
$json = json_encode(['name' => 'Имя', 'phone' => '88000000000']);
$options = ['http' => [
'method' => 'POST',
'header' => 'Content-type:application/json',
'content' => $json
]];
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
echo $response;
в вызываемом используйте поток php://input
для получения данных запроса. $_POST
у вас пуст, поскольку опять таки у вас не было массива ключ-значение
$raw = file_get_contents('php://input');
$data = json_decode($raw, true);
echo $data['name'];
при такой паре файлов в результате работы будет выведена строка Имя
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
У меня появилась задача такого плана: Нужно создавать фрагменты в соответствие с количеством элементов, пришедших с сервераСкажем, я получил...
Есть класс, методы которого необходимо протестироватьСобственно проблема: не могу правильно mock'нуть объекты тестируемого класса для покрытия...