파일에서 JSON 읽기 및 쓰기 PHP
파일에 다음 JSON이 있습니다.list.txt
:
{
"bgates":{"first":"Bill","last":"Gates"},
"sjobs":{"first":"Steve","last":"Jobs"}
}
추가 방법"bross":{"first":"Bob","last":"Ross"}
PHP를 사용하여 내 파일에 저장합니까?
지금까지의 내용은 다음과 같습니다.
<?php
$user = "bross";
$first = "Bob";
$last = "Ross";
$file = "list.txt";
$json = json_decode(file_get_contents($file));
$json[$user] = array("first" => $first, "last" => $last);
file_put_contents($file, json_encode($json));
?>
이로 인해 치명적인 오류가 발생합니다: stdClass 유형의 개체를 이 행의 배열로 사용할 수 없습니다.
$json[$user] = array("first" => $first, "last" => $last);
PHP5.2를 쓰고 있는데, 어떻게 생각해?감사합니다!
힌트는 에러 메시지에 있습니다.설명서에서 두 번째 파라미터를 사용할 수 있음을 주의하여 어레이를 반환할지 오브젝트를 반환할지 여부를 제어합니다.기본값은 object입니다.
그럼 다음 주소로 전화를 바꿔주세요.
$json = json_decode(file_get_contents($file), true);
그러면 관련 어레이가 반환되고 코드가 정상적으로 작동합니다.
PHP에서의 JSON 읽기 및 쓰기 샘플:
$json = json_decode(file_get_contents($file),TRUE);
$json[$user] = array("first" => $first, "last" => $last);
file_put_contents($file, json_encode($json));
$json을 개체로 사용할 수도 있습니다.
$json->$user = array("first" => $first, "last" => $last);
두 번째 파라미터 없이 (stdClass의 인스턴스로) 반환되는 방법입니다.
디코드 함수가 어레이를 반환하도록 하려면true
파라미터를 지정합니다.
json_decode(file_get_contents($file),true);
json_decode 함수에 대해 두 번째 매개 변수를 사용해 보십시오.
$json = json_decode(file_get_contents($file), true);
이것은, 다음의 내용을 입수하기 위해서 도움이 됩니다.list.txt
파일
$headers = array('http'=>array('method'=>'GET','header'=>'Content: type=application/json \r\n'.'$agent \r\n'.'$hash'));
$context=stream_context_create($headers);
$str = file_get_contents("list.txt",FILE_USE_INCLUDE_PATH,$context);
$str=utf8_encode($str);
$str=json_decode($str,true);
print_r($str);
JSON 데이터를 올바르게 정의된 형식으로 표시하려면 다음과 같이 코드를 수정할 수 있습니다.
file_put_contents($file, json_encode($json,TRUE));
$headers = array('http'=>array('method'=>'GET','header'=>'Content: type=application/json \r\n'.'$agent \r\n'.'$hash'));
$context=stream_context_create($headers);
$str = file_get_contents("list.txt",FILE_USE_INCLUDE_PATH,$context);
$str1=utf8_encode($str);
$str1=json_decode($str1,true);
foreach($str1 as $key=>$value)
{
echo "key is: $key.\n";
echo "values are: \t";
foreach ($value as $k) {
echo " $k. \t";
# code...
}
echo "<br></br>";
echo "\n";
}
json 형식을 작성하려면 다음 형식을 사용해야 합니다.
[
{
"":"",
"":[
{
"":"",
"":""
}
]
}
]
언급URL : https://stackoverflow.com/questions/8858848/php-read-and-write-json-from-file
'IT' 카테고리의 다른 글
Mono switch If Empty()는 항상 호출됩니다. (0) | 2023.02.27 |
---|---|
::: 의 각도란JS (0) | 2023.02.27 |
eslint의 이 'react/no-un-escape-Entitie' 위반을 어떻게 해결할 것인가? (0) | 2023.02.27 |
Spring @PostConstruct vs. init-method 속성 (0) | 2023.02.27 |
node.js에서 jQuery ajax 호출을 사용하는 방법 (0) | 2023.02.27 |