我有一个JavaScript文件,我想在其中包含一些PHP代码。 问题是我在PHP上有一些我想在JS上使用的定义。
有没有办法在HTML中包含.js文件,允许服务器首先使用php解释它(在下载到客户端之前)?
谢谢:)
答案 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,尽管这不是必需的。