我有一个JavaScript文件,我想包含一些php代码。 问题是我在PHP上也有一些定义,我也想在JS上使用它。通过PHP解析JavaScript文件
有什么办法可以在HTML中包含一个.js文件,以便服务器可以首先使用php解释它(在下载到客户端之前)?
谢谢:)
我有一个JavaScript文件,我想包含一些php代码。 问题是我在PHP上也有一些定义,我也想在JS上使用它。通过PHP解析JavaScript文件
有什么办法可以在HTML中包含一个.js文件,以便服务器可以首先使用php解释它(在下载到客户端之前)?
谢谢:)
<script src="/path/to/my/file.php"></script>
在file.php
,你还需要输出正确的标头,输出任何东西之前,你应该具备以下条件:
header("Content-Type: application/javascript");
编辑:由于@Tony_A指出,它应该是application/javascript
。我认为这并不重要一样多,当我在2010年:)
+1,提到标题 – 2010-10-15 14:35:46
太棒了,我设法失败了几次,但我的错误hehe欢呼 – DiogoNeves 2010-10-15 14:59:10
我刚刚回答了一个类似于这个问题,并引用了这个问题。看到你离开尼斯答案徽章1,所以我帮你解决了问题。 :) – 2011-01-27 21:33:36
没有测试,但它可能工作:
<script lang="text/javascript" src="path/to/your/script.php" ></script>
尽量给脚本.php
为文件扩展名。
是的,这工作正常。 – JAL 2010-10-15 14:33:31
如果您的PHP代码是有效的javascript语法,这只会有工作的机会。 – Jay 2010-10-15 14:34:21
这不是为我工作,但我也注意到,我需要另一个PHP里面,可能会产生问题:) – DiogoNeves 2010-10-15 14:34:31
<script> global_one = '<?php echo $global_one; ?>';</script>
简单的例子写了这个帖子;)如果所有其他JavaScript之前把这个在你的HTML文件<head>
的global_one
变量将提供给所有的JS文件。
是的,只写一个PHP文件,输出JavaScript和包括它在你的页面,你通常会像
<?php $f=40; ?>
<script type='text/javascript>
var f=<?php echo $f;?>;
</script>
客户并不关心,如果脚本文件中的.js结束,.PHP或什么,只是关于MIME类型和内容。
您也可以使用Apache指令,可能在.htaccess文件中告诉它将某个.js文件处理为PHP,或者将filename.js的请求直接指向filename.php,尽管这不是必需的。
当然,最容易通过使它成为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仍然可以充当静态内容和没有按” t需要通过PHP运行。这是资源密集度较低的。
您也可以在服务器级别执行此操作。假设你使用Apache,您可以将此行添加到您的配置(即使你的.htaccess会做):
AddType application/x-httpd-php .js
你也可以做到这一点与CSS甚至普通的醇”的HTML页面。
我确定其他服务器软件具有类似的功能。
这不是一个好主意。它不仅会变慢(所有.js文件将通过PHP进行解析,无论它们是否包含代码),但它也可能是一个安全漏洞。 – Cfreak 2017-03-25 01:35:49
创建一个名为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扩展,这是可能在您的服务器配置。
你提到一个PHP包含或者其他东西似乎对你造成问题。仔细阐述这一点? – JAL 2010-10-15 14:37:25
在过去,我实际上已经有了用于生成javascript函数的coldfusion函数。我发现这个特别有用,当我有可变数量的字段和不同的命名字段,并需要一些基于浏览器的功能。 – Jay 2010-10-15 14:39:17
@亚历克斯这是我与一个坏的require_once愚蠢;)干杯 – DiogoNeves 2010-10-15 15:08:01