noscriptタグが、サーバ環境でのみ、bodyの中に入ってしまう現象
私のPHPプロジェクトで以下のようなテンプレートがあります。(bodyの中身やheadの中身はわかりやすいように取り除いています。)
<!DOCTYPE html>
<head>
<noscript></noscript>
</head>
<body>
</body>
</html>
以上のテンプレートファイルを以下のPHPスクリプトで読み込んで表示させています。
$file = file_get_contents( $templatePath );
$dom = new \DOMDocument();
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true; // not working
$dom->encoding = 'UTF-8';
libxml_use_internal_errors( true );
$dom->loadHTML( mb_convert_encoding($file, 'HTML-ENTITIES', 'UTF-8') , LIBXML_NOERROR | LIBXML_NOWARNING );
libxml_clear_errors();
echo $dom->saveHtml();
このコードは、自分のmacのXAMMP上ではそのまま表示され、問題ありません。
しかし、サーバにこのコードを上げてブラウザで見ると、以下のように表示され、
noscriptタグがBodyの中に入ってしまいます。
<!DOCTYPE html>
<html>
<head></head>
<body>
<noscript></noscript>
</body>
</html>
どなたかこの現象がなぜ起こるか分かりますでしょうか。
開発環境は以下です。
環境に差がありますが、noscript以外は問題なく動いているので、
関係なさそうに思いますが。。
【環境】
Local
- XAMPP on my Mac
- Apache/2.4.18 (Unix) PHP/5.6.20
Server
- Apache/2.2.15 (Unix) PHP/5.6.15