문제가 있습니다.PHP API가 JSON을 파일로 저장 한 다음 파일을 읽는 중
기본적으로 데이터를 검색하기 위해 API에 액세스하려고합니다. 특정 연결 수로 제한되므로 데이터를 검색하고 호스트의 텍스트 파일에 저장 한 다음 원하는만큼 파일에서 읽을 계획을 세웠습니다. 그런 다음 cron 작업을 사용하여 몇 시간마다 새로운 데이터로 파일을 다시 채 웁니다.
어쨌든 API에 로그인하여 데이터를 수집했으며 문제없이 데이터를 "실시간"으로 표시 할 수 있습니다.
데이터를 저장하려고 할 때 문제가 발생하고 텍스트 파일에서 읽습니다. 다중 깊이 배열입니다.
불러 오는 코드
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL, 'URL GOES HERE');
//prepare the field values being posted to the service
$data = array("appkey" => "KEY","account" => "ACCOUNT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//make the request
$result = curl_exec($ch);
curl_close($ch);
이 코드의 벌금을 얻을, 나는
$properties = json_decode($result, true);
$properties = $properties['properties'];
//pr($parsed_json);
foreach($properties as $key => $value) {
if ($_GET[section] == "sale") {
if ($value['category_id'] == "1") {
displayProp ($address, $value['price'], $value['qualifier_name'], $value['summary']);
}
} elseif ($_GET[section] == "rent") {
if ($value['category_id'] == "2") {
displayProp ($address, $value['price'], $value['freq_name'], $value['summary']);
}
}
}
을 표시 할 수 있습니다이 작동합니다.
나는 다음 시도하고 괜찮 파일에 데이터를 저장
file_put_contents('properties.txt', json_decode($result));
와 함께 텍스트 파일로 JSON을 저장합니다. 그러나 그것을 읽으려고 할 때, 나는 무엇을 시도하든 무작위로 오류를 얻습니다. 누군가가 텍스트 파일을 읽고 배열을 출력하는 것을 도와 줄 수 있습니까? JSONLint와
나는 데이터를 확인하고 다음과 같은 오류
Parse error on line 1:
"{ \"status\": \
^
Expecting '{', '['
어떤 아이디어를 얻을?
json이 텍스트 파일에 완벽하게 표시되지만 데이터와 배열을 가져 오는 경우 경고 : 잘못된 문자열 오프셋 'properties'in /var/sites/s/steve-morris1.co.uk/public_html/ new/inc/properties.php on line 27 경고 : 잘못된 인수가 /var/sites/s/steve-morris1.co.uk/public_html/new/inc/properties.php의 43 행에있는 foreach()에 제공되었습니다. – James
원시 데이터를 반복하려고하기 때문입니다. PHP에서 루프하기 전에 원시 데이터에서'json_decode'를 읽어야합니다. –