代码之家  ›  专栏  ›  技术社区  ›  diggersworld

PHP DOM-加载YouTube嵌入代码时出现问题

  •  1
  • diggersworld  · 技术社区  · 14 年前

    我正在努力做到以下几点:

    $string = "<object width=\"425\" height=\"350\">
                   <param name=\"movie\" value=\"http://www.youtube.com/v/1OtdDqF5rnI&autoplay=0\"></param>
                   <param name=\"wmode\" value=\"transparent\"></param>
                   <embed src=\"http://www.youtube.com/v/1OtdDqF5rnI&autoplay=0\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"425\" height=\"350\"></embed>
               </object>";
    
    $doc = new DOMDocument();
    $doc->loadXML($string);
    

    加载字符串时,出现以下错误:

    [phpBB Debug] PHP Notice: in file /mnt/FS-2/Critical/Media/Private/Website/Online/blitz1up.com/application/controllers/articles.php on line 303: DOMDocument::loadXML() [domdocument.loadxml]: EntityRef: expecting ';' in Entity, line: 2
    [phpBB Debug] PHP Notice: in file /mnt/FS-2/Critical/Media/Private/Website/Online/blitz1up.com/application/controllers/articles.php on line 303: DOMDocument::loadXML() [domdocument.loadxml]: EntityRef: expecting ';' in Entity, line: 4
    

    我已经把原因缩小到YouTube网址,但不确定解决这个错误的最佳方法。所以任何建议都是非常受欢迎的。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Gordon Haim Evgi    14 年前

    &amp; 不用于声明实体时。解析器假定 &autoload

    要使用HTML,请考虑使用 loadHTML() ; 并禁用该部分的错误:

    libxml_use_internal_errors(TRUE);
    $doc = new DOMDocument();
    $doc->loadHTML($string);
    libxml_clear_errors();
    echo $doc->saveHTML();
    

    以上这些都适用 loadXML 我也是。