0

新しい Cookie 法に従うには、クライアントの Web サイトに JS プラグインを追加する必要があります。ただし、1 つは困難であることが証明されています。大量のページを含む純粋な HTML です。

どのような形であれ、次のように言うことは可能ですか?

server request {
    send a php file to inject into a html file sent from the server
}

それとも漠然と似たようなものですか?

4

5 に答える 5

2

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 を挿入しないことを決定できます。

于 2012-08-17T09:21:29.043 に答える
1

また、jquery プラグインが実行される js とラッパー php ファイルを使用して、ファイルから html ページをプルして本体にフィードバックすることもできます。

$(body).empty().html(body-html-from-static-html-file);

どんなにやろうとしても、ハッキーになるでしょう!

于 2012-08-17T09:20:18.777 に答える
0

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; ?>
于 2012-08-17T09:27:54.397 に答える
0

私の提案:使用.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";    
    }
?>
于 2012-08-17T09:30:03.130 に答える
0

純粋な html に php を挿入することはできません。ただし、逆の方法で行うこともできます... html をラップしてそれを変更する php スクリプトを作成します...必要な html を返します...

于 2012-08-17T09:06:41.437 に答える