通过PHP解析JavaScript文件

时间:2010-10-15 14:29:58

标签: php javascript

我有一个JavaScript文件,我想在其中包含一些PHP代码。 问题是我在PHP上有一些我想在JS上使用的定义。

有没有办法在HTML中包含.js文件,允许服务器首先使用php解释它(在下载到客户端之前)?

谢谢:)

7 个答案:

答案 0 :(得分:31)

<script src="/path/to/my/file.php"></script>

file.php中,您还需要输出正确的标题,然后输出任何内容,您应该具有以下内容:

header("Content-Type: application/javascript");
编辑:@Tony_A指出,它应该是application/javascript。当我在2010年写这篇文章时,我认为这并不重要:)

答案 1 :(得分:12)

创建一个名为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,那么你的服务器配置就可以了。

答案 2 :(得分:11)

当然,最容易将其设为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运行。这种资源密集程度较低。

答案 3 :(得分:7)

未经测试,但可能有效:

<script lang="text/javascript" src="path/to/your/script.php" ></script>

尝试将脚本.php作为文件扩展名。

答案 4 :(得分:6)

您也可以在服务器级别执行此操作。假设您正在使用apache,您可以将此行添加到您的配置中(即使您的.htaccess也会这样做):

AddType application/x-httpd-php .js

您也可以使用css或甚至普通的'html页面。

我确信其他服务器软件具有类似功能。

答案 5 :(得分:1)

<script> global_one = '<?php echo $global_one; ?>';</script> 快速示例;)如果您在所有其他javascript文件之前将其放在html <head>中,global_one变量将可用于所有js文件。

答案 6 :(得分:0)

是的,只需编写一个输出JavaScript的php文件,并像往常一样将其包含在您的页面中,例如

<?php $f=40; ?>
<script type='text/javascript>
   var f=<?php echo $f;?>;
</script>

客户端不关心脚本文件是以.js,.php等结尾,只是关于mime类型和内容。

您也可以使用Apache指令(可能在.htaccess文件中)告诉它将某个.js文件作为PHP处理,或者将filename.js的请求直接发送到filename.php,尽管这不是必需的。