PHP - libxml_set_external_entity_loader() 函式



定義和用法

XML 是一種用於在網路上共享資料的標記語言,XML 既可供人類閱讀,也可供機器讀取。libXMLError 類包含 libxml 庫丟擲的錯誤。

libxml_set_external_entity_loader() 函式用於更改預設的外部實體載入器。

語法

libxml_set_external_entity_loader($function);

引數

序號 引數和描述
1

function(必填)

這是一個可呼叫的函式,具有 3 個引數,即 public id、system id 和上下文。

返回值

此函式返回一個布林值,成功時為 TRUE,失敗時為 FALSE。

PHP 版本

此函式首次引入於 PHP 5 版本,並在所有後續版本中可用。

示例

以下示例演示了 libxml_set_external_entity_loader() 函式的用法:

<html>
   <head>
      <body>
         <?php
            $str = <<<XML
            <!DOCTYPE test PUBLIC "-//TEST/BAR" "http://test.com/testbar">
            <test>bar</test>
            $dtd = <<<DTD
            <!ELEMENT test (#PCDATA)>
            libxml_set_external_entity_loader(
            function ($public, $sys, $context) use($dtd) {
               print_r($public);
               print_r($sys);
               print_r($context);
               $f = fopen("php://temp", "r+");
               fwrite($f, $dtd);
               rewind($f);
               return $f;
            } 
         );
         $doc = new DOMDocument;
         $r =  $doc->loadXML($str);
         print_r($doc->validate());
         ?>      
      </body>
   </head>   
</html> 

這將產生以下結果:

-//TEST/BARhttp://test.com/testbarArray ( 
   [directory] => [intSubName] => [extSubURI] => [extSubSystem] => ) 1
php_function_reference.htm
廣告