我有一个 JavaScript 文件,我想在其中包含一些 php 代码。问题是我在 PHP 上有一些定义,我也想在 JS 上使用。
有没有办法在 HTML 中包含一个 .js 文件,允许服务器首先使用 php 解释它(在下载到客户端之前)?
谢谢 :)
我有一个 JavaScript 文件,我想在其中包含一些 php 代码。问题是我在 PHP 上有一些定义,我也想在 JS 上使用。
有没有办法在 HTML 中包含一个 .js 文件,允许服务器首先使用 php 解释它(在下载到客户端之前)?
谢谢 :)
<script src="/path/to/my/file.php"></script>
在file.php你还需要输出正确的标头,输出任何东西之前,你应该具备以下条件:
header("Content-Type: application/javascript");
编辑:正如@Tony_A 指出的那样,它应该是application/javascript. 当我在 2010 年写这篇文章时,我认为这并不重要:)
当然,最简单的方法是将其设为js.php文件。
不过,如果可能,请考虑替代方案:在包含外部脚本文件之前,将 PHP 定义提取到 JavaScript 中:
<script>
define1 = <?php echo YOUR_DEFINE1; ?>
define2 = <?php echo YOUR_DEFINE2; ?>
</script>
<script src="....."> // This script can now use define1 and define2
这样,外部 JavaScript 仍然可以作为静态内容提供,不需要通过 PHP 运行。那是较少的资源密集型。
创建一个名为 javascript-test.php 的 php 文件
<?php
header('Content-type: application/javascript');
$php = 'Hello World';
echo "alert('$php');";
?>
然后链接到您的 php,就好像它是一个 javascript 文件:
<script type="text/javascript" src="javascript-test.php" />
如果您需要 php 文件具有 .js 扩展名,这可以在您的服务器配置中实现。
未经测试,但它可能有效:
<script lang="text/javascript" src="path/to/your/script.php" ></script>
尝试将脚本.php作为文件扩展名。
您也可以在服务器级别执行此操作。假设您正在使用 apache,您可以将此行添加到您的配置中(即使您的 .htaccess 也可以):
AddType application/x-httpd-php .js
你也可以用 css 甚至普通的 ol' html 页面来做到这一点。
我相信其他服务器软件也有类似的功能。