通过PHPparsingJavaScript文件

我有一个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运行。 这是资源密集程度较低。

创build一个名为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,那么在你的服务器configuration中是可以的。

没有testing,但它可能工作:

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

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

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

AddType application/x-httpd-php .js

你也可以用CSS或甚至普通的HTML页面来做到这一点。

我相信其他服务器软件有相似的function。

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

是的,只需编写一个输出JavaScript的php文件,并像通常那样将它包含在页面中

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

客户端不关心脚本文件是以.js,.php还是别的什么结尾,只是关于MIMEtypes和内容。

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