PHP encoding with DOMDocument

前端 未结 3 1385
独厮守ぢ
独厮守ぢ 2020-12-02 17:32

Алекс М

When I try to get the content of the following code using DOMDocument functions, it returns something like:

<
相关标签:
3条回答
  • 2020-12-02 17:59

    Try:

    $string = file_get_contents('your-xml-file.xml');
    $string = mb_convert_encoding($string, 'utf-8', mb_detect_encoding($string));
    // if you have not escaped entities use
    $string = mb_convert_encoding($string, 'html-entities', 'utf-8'); 
    $doc = new DOMDocument();
    $doc->loadXML($string);
    
    0 讨论(0)
  • 2020-12-02 18:06

    I had a similar problem after using XPath to parse DomDocument, and after reading this

    https://bugs.php.net/bug.php?id=32547

    I solved it like this

    // Workaround because PHP 5.2.x has encoding problems, when we 
    // update to PHP 5.3 this line is not necesserry any more
    $content = '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />' . $content;
    
    // Creating new DOM document and loading HTML content
    $dom_document = new DOMDocument('1.0', 'UTF-8');
    $dom_document->substituteEntities = TRUE;
    $dom_document->loadHTML($content);
    
    0 讨论(0)
  • 2020-12-02 18:24

    Add xml header to you tags - try this:

    $a = new DOMDocument ();
    $a->loadXml ('<?xml version="1.0" encoding="UTF-8"?><tag>Алекс М</tag>');
    print htmlspecialchars ($a->saveXml ());
    
    0 讨论(0)
提交回复
热议问题