在.JS文件中使用PHP?

时间:2016-01-27 12:56:39

标签: javascript php .htaccess

所以我试图在.js文件中使用PHP,这是我到目前为止所拥有的。

.htaccess (任何* .api.js将作为PHP处理)

<FilesMatch "^.*?api.*?$">
SetHandler php54-script
</FilesMatch>

map.api.js

<?php
header("Content-type: application/javascript");
//my php here
?>

//my javascript here

.php文件全部包括

<script type="text/javascript" src="map.api.js"></script>

由于某种原因,这不起作用,经过大量研究后我找不到解决方案。

在Chrome开发者工具中,我收到了一个错误Uncaught SyntaxError: Unexpected token < - 非常自我解释,并不期望在<?php文件的顶部显示map.api.js

此处的其他人曾尝试过在.js文件中使用PHP吗?如果有一个更好的解决方案我想知道,因为我在谷歌上找不到多少。

3 个答案:

答案 0 :(得分:6)

创建一个带有php扩展名的文件,并将其作为javascript包含在您的网站中。

<强> map.api.js

<?php
header("Content-type: application/javascript");
//my php here
?>
//my javascript here

在您的HTML文件中

<script type="text/javascript" src="map.api.php"></script>

如果你不想隐藏php扩展,你可以使用mod_rewrite(Apache):

RewriteEngine on
RewriteRule ^map.api.js$ map.api.php

答案 1 :(得分:3)

您实际上不需要将PHP设置为.api.js文件的处理程序。只要保留.php标题,您也可以将Content-Type文件用作脚本。

所以你的文件应该是这样的:

<?php
    header("Content-Type: application/javasctipt);
    // code...
?>

alert("This is JS");

在您的HTML页面中,您可以像这样包含它:

<script src="/map.api.php"></script>

如果你想在将JS代码发送到客户端之前使用PHP来操作JS代码,这也很有用,所以你可以这样做:

<script src="/map.api.php?feature=1"></script>

并在你的PHP中:

<?php
    header("Content-Type: application/javasctipt);
?>

alert("This is JS");

<?php
    if ($_GET["feature"] == "1") {
        echo "alert('Cool feature imported');";
    }
?>

答案 2 :(得分:1)

采取反应是最好的做法。

如果你真的想在dotJS文件中执行PHP代码。

<强>的.htaccess

<FilesMatch "\bapi\b">
SetHandler php54-script
</FilesMatch>

确保在Apache配置中允许.htaccess:

<Directory /your/path>
AllowOverride All
Order deny,allow
Deny from all
Satisfy all
</Directory>