在 HTML 中请求时使用 PHP 生成 JavaScript 文件
Posted
技术标签:
【中文标题】在 HTML 中请求时使用 PHP 生成 JavaScript 文件【英文标题】:Generate JavaScript file with PHP when requested in HTML 【发布时间】:2015-01-07 09:57:33 【问题描述】:当在 html 程序中请求时,如何使用 php 生成 javascript 文件?我想要一个这样的 PHP 程序,它在请求某个 JavaScript 文件时在服务器上运行。示例代码:
<?php
If (requested("file:///C:/server/htdocs/javascriptgenerator.php")
javascript-code-to-give-to-client = "function myFunction()...";
?>
我知道那是非常假的代码,但当我不知道该怎么做时,我就是这样写的。我还希望该文件始终在服务器上运行,以防请求该文件。我也想知道如何正常发送文件。我也想知道如何根据客户来执行此操作。
【问题讨论】:
只是出于好奇,你为什么要这么做? 我不知道您为什么要这样做,没有足够的上下文,但请查看file_put_contents()
好吧,我想根据客户的情况来做。
【参考方案1】:
最简单的方法是不实际使用 javascriptfile.js。取而代之的是一个名为 javascriptgenerator.php 的新 php 文件或包含以下代码的文件:
<?php
header('Content-Type: text/javascript');
if($condition)
echo file_get_contents('js/javascript_file_a.js');
header() 行确保浏览器会识别它是一个 JS 文件。
在 HTML 文件中使用这个很简单,只需在 <head>
标签中使用这行代码
<script type="text/javascript" src="javascriptgenerator.php"></script>
如果您需要了解有关客户端的信息,您可以检查用户代理,然后您可以将其传递给 get_browser()
函数,如下所示:
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$browser_info = get_browser($user_agent);
获取浏览器输出的示例(来自PHP Manual):
Array
(
[browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
[browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
[parent] => Firefox 0.9
[platform] => WinXP
[browser] => Firefox
[version] => 0.9
[majorver] => 0
[minorver] => 9
[cssversion] => 2
[frames] => 1
[iframes] => 1
[tables] => 1
[cookies] => 1
[backgroundsounds] =>
[vbscript] =>
[javascript] => 1
[javaapplets] => 1
[activexcontrols] =>
[cdf] =>
[aol] =>
[beta] => 1
[win16] =>
[crawler] =>
[stripper] =>
[wap] =>
[netclr] =>
)
【讨论】:
我应该如何获取 HTML 中的脚本?根据客户的不同,我该怎么做?以上是关于在 HTML 中请求时使用 PHP 生成 JavaScript 文件的主要内容,如果未能解决你的问题,请参考以下文章