通过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_one
variables将可用于所有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这不是必需的。