<分区>
标签 php javascript jquery html css
<分区>
为了遵循新的 cookie 法规,我们需要向客户网站添加一个 JS 插件。然而,事实证明这是困难的:带有大量页面的纯 HTML。
是否可以以任何方式、形状或形式说:
server request {
send a php file to inject into a html file sent from the server
}
或任何模糊相似的东西?
最佳答案
我认为将自定义代码注入(inject) HTML 文件而不修改它们的最简单方法是添加一个额外的处理层。它会略微(可能不会引起注意)减慢每个请求的速度,但您的工作量肯定会减少。
假设您使用的是 Apache,创建一个 .htaccess
具有类似于以下重写规则的文件(未经测试)。
RewriteEngine On
RewriteRule \.html$ /injector.php
这将导致每个对 html 文件的请求都被传递给 injector.php
在此文件中,您可以看到最初使用 $_SERVER['REQUEST_URI']
请求的页面.使用 DOMDocument
从磁盘中获取此文件并使用内置方法找到您想要注入(inject)的区域(如果您想将 <script>
放在 <head>
中,您可能只需要 getElementById
)。注入(inject)您的代码,并吐出修改后的文档。
仅供引用,法律完全允许使用 操作所需 的 cookie,这包括 PHP session ID 以及用于存储与 cookie 使用相关的任何偏好的 cookie。我再说一遍,使用 cookie 来存储用户不想使用 cookie 的偏好是可以的。
在你的injector.php
您可以检测到此类偏好 cookie 的存在,并据此决定不注入(inject)您的 javascript(如果您愿意)。
关于php - 根据服务器请求将 PHP header 发送到 html 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12002863/