XML 데이터를 처리 할 때 PHP는 매우 실용적인 XML 파서 함수 세트를 제공합니다. 여기서 XML_PARSER_GET_OPTION은 파서에 대한 구성 옵션을 얻는 데 사용됩니다. 그러나 많은 개발자 들이이 기능을 사용할 때 False를 반환하는 상황을 만나게됩니다. 이는 혼란 스럽습니다.
이 기사는 XML_PARSER_GET_OPTION이 허위를 반환하는 일반적인 이유를 심층적으로 분석하고 XML 구문 분석 작업을보다 원활하게 처리하는 데 도움이되는 대상 솔루션을 제공합니다.
먼저 xml_parser_get_option 이 사용되는 방법을 검토해 봅시다.
$parser = xml_parser_create();
$value = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING);
함수는 두 가지 매개 변수를 수락합니다.
$ parser : xml_parser_create () 에 의해 생성 된 파서 리소스.
옵션 상수 (예 : xml_option_case_folding , xml_option_target_encoding 등).
반환 값은이 옵션의 현재 설정이며 오류가 발생하면 False가 반환됩니다.
이것은 가장 일반적인 문제 중 하나입니다. XML_PARSER_GET_OPTION은 유효한 파서 리소스에 따라 다릅니다. 릴리스 된 파서 (예 : XML_PARSER_FREE )와 같은 구문 분석기를 통과하면 직접 거짓을 반환합니다.
예:
$parser = xml_parser_create();
xml_parser_free($parser);
$value = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING); // 반품 false
해결책:
xml_parser_get_option을 호출 할 때 파서가 여전히 유효하고 릴리스되거나 덮어 쓰지 않도록하십시오.
PHP의 XML 확장은 세 가지 옵션 상수 만 지원합니다.
xml_option_case_folding
xml_option_target_encoding
xml_option_skip_white
수동으로 철자 된 문자열 또는 지원되지 않은 옵션과 같이 유효하지 않은 상수 이름이 전달되면 False가 반환됩니다.
Error example:
$value = xml_parser_get_option($parser, "XML_OPTION_INVALID"); // 반품 false
올바른 사용 :
$value = xml_parser_get_option($parser, XML_OPTION_SKIP_WHITE);
참고 : 상수 이름을 인용 할 수 없습니다.
XML_PARSER_GET_OPTION 의 첫 번째 매개 변수는 XML_PARSER_CREATE를 통해 생성 된 파서 리소스 여야합니다. 문자열, 배열 또는 객체가 잘못 사용되면 거짓 도 반환됩니다.
Error example:
$value = xml_parser_get_option("not_a_parser", XML_OPTION_CASE_FOLDING); // 반품 false
해결책:
XML_PARSER_CREATE () 에 의해 생성 된 법적 파서 변수가 전달되어 있는지 확인하십시오.
드문 경우, PHP의 XML 확장 기능이 활성화되지 않아서 간접적으로 거짓이 반환되거나 오류가 발생할 수 있습니다.
테스트 방법 :
phpinfo(); // 활성화되어 있는지 확인하십시오 XML support
활성화되지 않으면 php.ini 에서 활성화 할 수 있습니다.
extension=xml
그런 다음 서버를 다시 시작하십시오.
이 문제를 더 잘 디버깅하려면 파서가 유효한지 확인하기 위해 호출하기 전에 IS_RESOURCE ()를 사용할 수 있습니다.
if (!is_resource($parser)) {
echo "유효하지 않은 XML 파서 자원";
} else {
$value = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING);
if ($value === false) {
echo "구성을 얻지 못했습니다";
} else {
echo "구성 값:" . $value;
}
}
또한 var_dump ()를 사용하면 실제 반환 값의 실제 유형을보다 명확하게 볼 수 있습니다.
온라인 XML 검증 도구 인 URL을 구축한다고 가정 해 봅시다.
$url = 'https://gitbox.net/tools/xml-checker';
$parser = xml_parser_create();
$value = xml_parser_get_option($parser, XML_OPTION_CASE_FOLDING);
구문 분석기가 유효하고 옵션 상수가 올바르게 철자를 맞추고 PHP 확장자가 원하는 결과를 얻을 수 있도록 활성화되어 있습니다.
XML_PARSER_GET_OPTION은 일반적으로 다음과 같은 상황으로 인해 거짓을 반환합니다.
유효하지 않거나 파괴 된 파서가 통과되었습니다.
잘못된 옵션 상수가 사용되었습니다.
첫 번째 매개 변수 유형이 잘못되었습니다.
PHP의 XML 확장은 활성화되지 않았습니다.
이러한 세부 사항을 마스터하고 코드 디버깅 기술을 결합하면 문제가 효율적으로 해결 될 수 있습니다. 이 기사가 XML 개발 경로의 장애물을 지울 수 있기를 바랍니다.