PHP에서는 특히 외부 서비스와 상호 작용하거나 파일에서 구성을 읽어야 할 때 데이터를 JSON 형식으로 처리해야합니다. getfile 및 json_decode 는 JSON 데이터를 처리 할 때 매우 일반적으로 사용되는 두 가지 기능입니다. 오늘 우리는이 두 기능을 일치시키는 방법을 단계별로 설명하여 JSON 파일의 내용을 구문 분석 할 것입니다.
getfile :
GetFile 은 PHP의 파일 읽기 기능으로 일반적으로 파일의 데이터를 읽는 데 사용됩니다. 파일의 내용을 문자열로 반환합니다. 파일이 크면 GetFile은 한 번에 전체 파일을 읽을 수도 있습니다.
예 :
<span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'data.json'</span></span><span>);
</span></span> JSON_DECODE :
JSON_DECODE는 JSON 형식의 문자열을 PHP 작동 가능한 데이터 형식, 일반적으로 배열 또는 객체로 변환하는 데 사용됩니다. 매개 변수를 지정하면 JSON_DECODE를 사용하면 반환 된 데이터 형식을 제어 할 수 있습니다.
예 :
<span><span><span class="hljs-variable">$arrayData</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$jsonString</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span></span>여기서 두 번째 매개 변수 는 JSON을 PHP 배열로 변환하는 것을 의미합니다. 이 매개 변수가 전달되지 않으면 JSON을 PHP 객체로 변환합니다.
다음 내용이있는 JSON 파일 Data.json이 있다고 가정합니다.
<span><span><span class="hljs-punctuation">{</span></span><span>
</span><span><span class="hljs-attr">"name"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"John"</span></span><span><span class="hljs-punctuation">,</span></span><span>
</span><span><span class="hljs-attr">"age"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-number">30</span></span><span><span class="hljs-punctuation">,</span></span><span>
</span><span><span class="hljs-attr">"email"</span></span><span><span class="hljs-punctuation">:</span></span><span> </span><span><span class="hljs-string">"[email protected]"</span></span><span>
</span><span><span class="hljs-punctuation">}</span></span><span>
</span></span>이제 GetFile 및 JSON_DECODE를 사용 하여이 파일을 구문 분석하고 데이터를 추출하려고합니다.
먼저, json 파일의 내용을 문자열 변수로 읽으려면 file_get_contents 함수를 사용해야합니다.
<span><span><span class="hljs-variable">$fileContent</span></span><span> = </span><span><span class="hljs-title function_ invoke__">file_get_contents</span></span><span>(</span><span><span class="hljs-string">'data.json'</span></span><span>);
</span></span>다음으로 JSON_DECODE 함수를 사용하여 읽기 JSON 문자열을 PHP 배열 또는 객체로 변환하십시오. 배열로 구문 분석하려면 실제 매개 변수를 전달할 수 있습니다.
<span><span><span class="hljs-variable">$data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">json_decode</span></span><span>(</span><span><span class="hljs-variable">$fileContent</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span></span>이제 $ data는 연관 배열이며 배열 키를 통해 JSON 파일의 데이터에 액세스 할 수 있습니다. 예를 들어:
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Name: "</span></span><span> . </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Age: "</span></span><span> . </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'age'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Email: "</span></span><span> . </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span></span>실제로 사용하면 JSON 데이터를 구문 분석 할 때 오류가 발생할 수 있습니다. 구문 분석 실패로 인한 문제를 피하기 위해 오류 처리 로직을 추가 할 수 있습니다.
<span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">json_last_error</span></span><span>() !== JSON_ERROR_NONE) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"JSON 디코딩 오류: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">json_last_error_msg</span></span><span>();
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-comment">// 데이터 처리 로직</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Name: "</span></span><span> . </span><span><span class="hljs-variable">$data</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
</span></span>PHP는 file_get_contents 및 json_decode 함수를 사용하여 JSON 형식의 파일 컨텐츠를 파일 콘텐츠를 구문 분석하는 매우 간결하고 강력한 방법을 제공합니다. 필요에 따라 JSON을 배열 또는 객체로 변환하고 후속 처리를 수행하도록 선택할 수 있습니다. 또한 JSON 디코딩 프로세스에서 잠재적 오류를 확인하는 것을 잊지 마십시오.
이러한 기본 작업을 마스터하면 JSON 데이터를 구문 분석하는 것이 매우 쉽습니다. 보다 복잡한 데이터 처리 요구가있는 경우 추가 최적화 및 확장을 위해 다른 PHP 기능과 협력 할 수도 있습니다.