libxml
libxml
PHP의 XML 관련 기능 대부분은 사실 리브xml(libxml)이라는 공용 라이브러리 위에서 동작해요. libxml 확장은 그 기반이 되는 기능과 상수, 그리고 오류 처리용 함수를 제공해요. 아래의 핵심 확장들이 이 libxml 확장에 의존하고 있답니다. DOM, libxml, SimpleXML, SOAP, WDDX, XSL, XML, XMLReader, XMLRPC, XMLWriter가 전부 그 목록이에요.
출처: libxml
본문
이 함수들과 상수들은 PHP 5.1.0부터 사용할 수 있어요. libxml 확장의 주된 역할은 크게 두 가지예요.
- XML 파싱 전반에 쓰이는 공용 상수와 설정을 제공하는 것
- 파싱 중 발생하는 오류를 세밀하게 제어하고 조회하는 것
특히 libxml_use_internal_errors()를 쓰면 libxml 내부 오류 버퍼를 켜고 PHP의 일반 오류 대신 직접 오류를 조회할 수 있어요. XML을 다루는 여러 확장을 쓰다 보면 이 오류 제어가 굉장히 유용해요.
libxml 함수
libxml_clear_errors— libxml 오류 버퍼를 비워요libxml_disable_entity_loader— 외부 엔티티를 불러오는 기능을 비활성화해요libxml_get_errors— 오류 배열을 가져와요libxml_get_external_entity_loader— 현재 외부 엔티티 로더를 가져와요libxml_get_last_error— libxml의 마지막 오류를 가져와요libxml_set_external_entity_loader— 기본 외부 엔티티 로더를 변경해요libxml_set_streams_context— 다음 libxml 문서 로드/쓰기에 사용할 스트림 컨텍스트를 설정해요libxml_use_internal_errors— libxml 오류를 비활성화하고 사용자가 필요할 때 오류 정보를 가져올 수 있게 해요
LibXMLError 클래스
파싱 중 발생한 오류 하나를 나타내는 LibXMLError 클래스가 있어요. 이 클래스는 오류 코드, 메시지, 줄 번호, 컬럼 번호, 파일 경로, 심각도(레벨) 등의 속성을 담고 있어요.
더 알아보기
설치 요구 사항은 버전에 따라 달라져요. PHP 7.4 이상과 7.4 미만의 설치 방법이 다르므로 Installing/Configuring 문서를 확인해 보세요. 미리 정의된 상수와 LibXMLError 클래스의 세부 내용도 각 문서에서 이어서 볼 수 있어요.