body、head、htmlなどの重要なタグを削除すると、ブラウザーで出力を表示できなくなります。
したがって、str_replaceは適切に機能しています。次のコードを実行してクロスチェックできます。
<?php
$f =file_get_contents('game1/game.html');
$replacetags=array('<html>', '</html>', '<body>', '</body>','<head>','</head>') ;
$file= str_replace( $replacetags,"",$f);
file_put_contents("output.html", $file);
?>
ブラウザーでページ (上記のソース コードを含む) を実行またはロードした後、生成されたoutput.html
ファイルをテキスト エディターで開くと、body、head、および html タグが表示されません。
UPD:
HTML ファイルが完全に空白になるのはなぜですか?
Wモードでfopenを使用してファイルまたは URL を開くと、次のことが起こります。
'w': Open for writing only; place the file pointer at the
beginning of the file and truncate the file to zero length.
If the file does not exist, attempt to create it.
fopen asでファイルを開いているfopen ("game1/game.html", "w");
と、ファイル ポインターがファイルの先頭に配置され、ファイルの長さがゼロ (空白) に切り詰められます。
また、注意: str_replaceの 3 番目のパラメーターはthe string or array being searched and replaced on, otherwise known as the haystack
. ただし、コードでは、渡す 3 番目のパラメーター$fはファイル ハンドルです。その結果、 を$file
使用して文字列を出力すると、フィルタリングされた (対象の) 文字列の代わりにリソース ID #x がecho or print
出力されます。