新しい Cookie 法に従うには、クライアントの Web サイトに JS プラグインを追加する必要があります。ただし、1 つは困難であることが証明されています。大量のページを含む純粋な HTML です。
どのような形であれ、次のように言うことは可能ですか?
server request {
send a php file to inject into a html file sent from the server
}
それとも漠然と似たようなものですか?
新しい Cookie 法に従うには、クライアントの Web サイトに JS プラグインを追加する必要があります。ただし、1 つは困難であることが証明されています。大量のページを含む純粋な HTML です。
どのような形であれ、次のように言うことは可能ですか?
server request {
send a php file to inject into a html file sent from the server
}
それとも漠然と似たようなものですか?
HTML ファイルを変更せずにカスタム コードを HTML ファイルに挿入する最も簡単な方法は、処理のレイヤーを追加することだと思います。これにより、各リクエストがわずかに (おそらく目立たない程度に) 遅くなりますが、ユーザーの労力は確実に軽減されます。
Apache を使用していると仮定.htaccess
して、次のような書き換えルールでファイルを作成します (未テスト)。
RewriteEngine On
RewriteRule \.html$ /injector.php
これにより、html ファイルに対するすべてのリクエストがinjector.php
このファイル内で、最初に を使用してリクエストされたページを確認できます$_SERVER['REQUEST_URI']
。a を使用してディスクからこのファイルを取得DOMDocument
し、組み込みのメソッドを使用して挿入する領域を見つけます ( に a を入れたい場合は<script>
、<head>
おそらく のみが必要ですgetElementById
)。コードを挿入し、変更されたドキュメントを吐き出します。
参考までに、運用に必要なCookie を使用することは法律で完全に許可されています。これには、PHP セッション ID や、Cookie の使用に関連する設定を保存するための Cookie などが含まれます。繰り返しますが、ユーザーが Cookie を使用したくないという設定を保存するために Cookie を使用することは問題ありません。
このinjector.php
ような設定 Cookie の存在を検出し、それに基づいて、必要に応じて JavaScript を挿入しないことを決定できます。
また、jquery プラグインが実行される js とラッパー php ファイルを使用して、ファイルから html ページをプルして本体にフィードバックすることもできます。
$(body).empty().html(body-html-from-static-html-file);
どんなにやろうとしても、ハッキーになるでしょう!
auto_prepend_fileおよびauto_append_filephpiniディレクティブを使用できますが、.htmlファイルで機能するには、phpを.htmlファイルを解析するように設定する必要があります。出力バッファリングを使用すると、コンテンツをキャプチャしてからhtmlを変更できます。auto_prepend_file php iniディレクティブを使用して、関数ob_start();を呼び出す.phpファイルを参照します。出力のキャッチを開始します。単に:
<?php ob_start(); ?>
次に、auto_append_file php iniディレクティブを使用してファイルを参照し、出力を変更できます。出力を取得するには、ob_get_contents();を使用します。そのようです:
<?php $output = ob_get_contents(); ?>
phpでいくつかの文字列関数を使用すると、$outputに格納されているhtmlを好きなように変更できます。次に、$ outputを送信する準備ができたら、追加した同じファイルで次を使用します。
<?php ob_end_clean(); echo $output; ?>
私の提案:使用.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([^.]+).html$ /index.php?file=$1 [QSA,L]
</IfModule>
そして作成index.php
-すべてのファイルにあると仮定します。
<?php
if(file_exists($_GET['file'].'.html')){
$file = file_get_contents($_GET['file'].'.html');
$plugin = "<script> (function(){ /* your script */ }); </script>";
echo str_replace('</body>', $plugin."</body>", $file);
} else {
echo "not found";
}
?>
純粋な html に php を挿入することはできません。ただし、逆の方法で行うこともできます... html をラップしてそれを変更する php スクリプトを作成します...必要な html を返します...