3

2つのファイルがあります。1つはinput.phpで、もう1つはoutput.htmlです。
内部のinput.phpファイルのコードは次のようになります。

<?php

   $file="output.html";
   $doc=new DOMDocument('1.0');
   $doc->loadHTMLFile($file);
   $elements = $doc->getElementsByTagName('head');

   $jscript=$doc->createElement("script");
   $jstype=$doc->createAttribute("type");
   $jstText=$doc->createTextNode("text/javascript");
   $jstype->appendChild($jstText);
   $jscript->appendChild($jstype);
   $jssource=$doc->createAttribute("src");
   $jssText=$doc->createTextNode("xxxxx.js");
   $jssource->appendChild($jssText);
   $jscript->appendChild($jssource);
   $elements->item(0)->appendChild($jscript);
   $doc->save("output.html");   
?>

output.htmlファイル内:

<code>   
 <html>
   <head>
   </head>
   <body>
   </body>
 </html>
</code>

実は、underoutput.htmlの「head」を追加したいです。しかし、今は2つの問題があります。

1.コンテンツはoutput.phpファイルに書き込むことができますが、常にファイルの最初の行に含まれているため、htmlページが機能しなくなります。

2.タグは常に。として追加されます。(xml形式)。それは動作しません、私は必要です(html形式)

2つの問題の解決策はありますか?または、私の目標を達成する他の方法はありますか?(input.phpファイルでsaveHTML()を試しましたが、まだ機能しません)

4

1 に答える 1

3

ドキュメントから

DOMDocument::save —内部 XML ツリーをファイルにダンプする

したがって、XML 表現が得られるのも不思議ではありません。DOMDocument::saveHTMLFileコメントですでに提案されているように試すか、試すことができますecho $doc->saveHTML();

于 2012-08-15T22:12:44.113 に答える