@noname_2019

Интерпретация результатов CURL, каким образом?

Добрый всем день. Столкнулся с интересной ситуацией, хотелось бы вашей помощи.
Я только начинаю копаться в Web-программировании (стаж не более 4-х месяцев), занимаюсь всем, чем придётся (вёрстка, js, php, и т.п.).
Суть вопроса.

Есть следующий php-код:
<?php
	$ch = curl_init();
	$url="url скрыт";
	$param="{\r\n\"Request_id\": \"необходимый id\",\r\n\"Method\": \"getCities\",\r\n\"Parameters\": {\r\n}\r\n}\r\n";


	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_VERBOSE, true);
	curl_setopt($ch, CURLOPT_HEADER, true);
	curl_setopt($ch, CURLOPT_POST, true);
	curl_setopt($ch, CURLOPT_POSTFIELDS,$param);
//	curl_setopt($ch, CURLOPT_CERTINFO,true);
	
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);


	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
	curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
	curl_setopt($ch, CURLOPT_USERPWD,"login:password");
	curl_setopt($ch, CURLOPT_COOKIEFILE,"cookie.txt");
	curl_setopt($ch, CURLOPT_COOKIEJAR,"cookie.txt");


	$result = curl_exec($ch); 
	
	var_dump($result);

	
	curl_close($ch);
	
	
?>


Данный запрос отправляется на сервер, от которого мы получаем список имеющихся на базе городов. Ответ, находящийся в $result, выглядит следующим образом:

string(267) "HTTP/1.1 200 OK Date: Thu, 04 Apr 2019 06:31:15 GMT Server: Apache Content-Length: 142 Content-Type: application/json { "Request_id": "id", "Parameters": [ "Город1", "Город2" ], "Error": 0 }"

Собственно, вся проблема в том, чтобы вытащить из этого ответа всё, что находится в массиве Parameters.
Единственный способ, до которого пока я допёр - вручную парсить и разбивать при помоищ strpos, substr, и str_replace. Но возникает проблема при других запросах, например, вместо метода getCities будет метод getCars, у которых явно будет больше характеристик, чем одна (и, получается, массив parameters будет содержать внутри себя ещё массивы, и т.п.). Есть ли другие способы, более оптимальные и простые?
  • Вопрос задан
  • 488 просмотров
Решения вопроса 1
@DanKud
Зачем вам заголовки в выводе? Убирайте заголовки и просто распарсите JSON:
.....
curl_setopt($ch, CURLOPT_HEADER, false);
.....

$arr = json_decode($result, true);
print_r($arr);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы