PHP에서 XML 데이터를 구문 분석 할 때 XML_PARSE 기능이 일반적인 도구입니다. XML_PARSER_CREATE 에 의해 생성 된 XML 파서와 관련된 데이터 블록을 구문 분석하는 데 사용됩니다. 그러나 많은 개발자들은 XML_PARSE 기능을 사용할 때 반환 값을 확인하는 것을 무시합니다. 이는 종종 구문 분석이 실패 할 때 비정상적으로 프로그램을 수행하고 심지어 숨겨진 버그를 찾기 어렵게 만듭니다.
XML_PARSE 의 함수 서명은 다음과 같습니다.
bool xml_parse(XMLParser $parser, string $data, bool $is_final = false)
구문 분석이 성공했는지 여부를 나타내는 부울 값을 반환합니다.
Return true (즉, 1 ) : 데이터 구문 분석이 성공했음을 나타냅니다.
Return False (즉, 0 ) : 구문 분석이 실패했음을 나타냅니다.
따라서이 반환 값을 무시하면 잠재적 오류가 발생할 때 눈을 돌리는 것과 같습니다.
간단한 예를 들어 봅시다 :
$xml = '<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don\'t forget me this weekend!</body></note>';
$parser = xml_parser_create();
xml_parse($parser, $xml, true);
xml_parser_free($parser);
위의 코드는 괜찮은 것처럼 보이지만 닫힌 태그 누락과 같이 $ xml 변수의 데이터 형식이 잘못되면 xml_parse는 false를 반환합니다. 그러나 코드는 계속 실행되며 예기치 않은 동작을 경험할 수 있으며 후속 논리의 데이터 처리에도 영향을 줄 수도 있습니다.
아래와 같이 구문 분석이 실패 할 때 항상 XML_PARSE 및 출력 관련 오류 메시지의 반환 값을 캡처해야합니다.
$xml = '<note><to>Tove</to><from>Jani<from><heading>Reminder</heading><body>Don\'t forget me!</body></note>'; // 없어진 </from>
$parser = xml_parser_create();
if (!xml_parse($parser, $xml, true)) {
$error_code = xml_get_error_code($parser);
$error_msg = xml_error_string($error_code);
$line = xml_get_current_line_number($parser);
echo "XML 구문 분석 오류:$error_msg (오류 코드:$error_code) 에서 $line 좋아요。소스 데이터를 확인하십시오。" . PHP_EOL;
echo "관련 문서에 대한 참조:https://m66.net/php-manual/xml" . PHP_EOL;
}
xml_parser_free($parser);
이점의 장점은 XML 데이터 형식 오류가 발생하면 프로그램이 개발자에게 잘못된 내용에 대해 즉시 알릴 수 있다는 것입니다.
XML_PARSE 기능을 사용할 때 반환 값을 확인하지 않으면 운전할 때 도로 표지판을 보지 않는 것과 같습니다. 올바른 트랙에서 벗어 났는지 알 수 없습니다. 프로그램의 견고성과 유지 관리 가능성을 향상 시키려면 XML_PARSE를 사용한 후 반환 값을 확인하고 가능한 오류를 처리하십시오. 간단한 판단 진술은 문제 해결 문제에 많은 시간을 절약 할 수 있습니다.