2

我需要我的服务器来发送 JS 文件,但我需要它实际上是 PHP 生成的文件。
我正在使用 Apache 和 PHP。

所以这个函数名为

doSomething(){
};

doSomething(){
         <?php
               if(registeredUser()){
                    echo "Doing something!";
               }
         ?> 
    };
4

3 回答 3

4
  1. 给文件一个 php 扩展名,但像普通 JavaScript 一样加载它

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

  2. 在 PHP 文件中发送正确的内容类型:

    header("content-type: text/javascript");

这允许您的服务器使用 PHP 创建 JavaScript。

于 2013-02-03T18:52:35.443 回答
2

你不需要做任何魔术。浏览器不关心是什么创建了 Javascript,只要 Javascript 是有效的!

也就是说,您应该发送正确的Content-type标头:

header('Content-type: text/javascript');
于 2013-02-03T18:52:45.137 回答
0

您可以通过简单地使用 PHP 文件作为脚本的src属性来做到这一点:

<script src="myfile.php"></script>

但是,从资源的角度来看,运行另一个 PHP 脚本并不理想。另一个 PHP 进程被触发,你必须处理缓存等。

考虑您的 JS 文件中是否不能包含静态代码,并在您的主文件中设置您正在检查的条件,无论如何您都在其中运行 PHP。

在 JavaScript 文件 (myfile.js) 中:

function doSomething()
   { if (logged_in) do_something() }

在主文件中<head>,执行:

<script>
<?php if (registeredUser()): ?>
 logged_in = true;
<?endif; ?>
<script>

然后像往常一样包含静态 JS 文件。

于 2013-02-03T18:54:02.497 回答