【问题标题】:Generate JavaScript file with PHP when requested in HTML在 HTML 中请求时使用 PHP 生成 JavaScript 文件
【发布时间】: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()
  • 好吧,我想根据客户的情况来做。

标签: javascript php request code-generation server


【解决方案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 文件中使用这个很简单,只需在 &lt;head&gt; 标签中使用这行代码

<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 中的脚本?根据客户的不同,我该怎么做?
猜你喜欢
  • 2013-05-31
  • 2012-10-25
  • 1970-01-01
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 2020-02-06
  • 2022-01-24
相关资源
最近更新 更多