将PHP包含在JavaScript(.js)文件中

我有一个包含多个JavaScript函数的JavaScript文件(扩展名为.js ,不是.html )。

我想在一个PHP函数中调用其中一个PHP函数,该函数仅包含一个JavaScript函数中的几个PHP函数。

  • 那可能吗?
  • 我是否需要在.js文件中“包含”包含PHP函数的.php文件?
  • 我会怎么做?
    例如,假设我有一个名为myLib.php的文件,其中包含一个名为myFunc的函数,它具有两个参数( param1param2 )。 然后我有一个包含名为myJsFunc的函数的.js文件。 如何从myJsFunc (JavaScript函数)中调用myFunc (PHP)? 我不需要在.js文件中包含PHP文件吗?

  • 7年后更新:这是可怕的建议。 请不要这样做。

    如果您只需要将变量从PHP传递到JavaScript,那么您可以在php / html文件中使用javascript开头。

    <script type="text/javascript">
        phpVars = new Array();
        <?php foreach($vars as $var) {
            echo 'phpVars.push("' . $var . '");';
        };
        ?>
    </script>
    <script type="text/javascript" src="yourScriptThatUsesPHPVars.js"></script>
    

    如果你试图调用函数,那么你可以这样做

    <script type="text/javascript" src="YourFunctions.js"></script>
    <script type="text/javascript">
        functionOne(<?php echo implode(', ', $arrayWithVars); ?>);
        functionTwo(<?php echo $moreVars; ?>, <?php echo $evenMoreVars; ?>);
    </script>
    

    AddType application/x-httpd-php .js
    
    AddHandler x-httpd-php5 .js
    
    <FilesMatch ".(js|php)$">
    SetHandler application/x-httpd-php
    </FilesMatch>
    

    在.htaccess文件中添加上述代码并在js文件中运行php

    危险:这将允许客户端可能看到您的PHP文件的内容。 如果您的PHP包含任何敏感信息(通常会这样做),请勿使用此方法。

    如果你必须使用PHP来生成你的JavaScript文件,那么请使用纯PHP来生成整个JS文件。 您可以通过使用普通的.PHP文件来执行此操作,其方式与通常输出html的方式完全相同,区别在于使用PHP的标头函数设置正确的标头,以便将正确的MIME类型返回给浏览器。 JS的mime类型通常是“ application / javascript


    基于Blorgbeard的稍微修改后的版本,用于将可引用的关联php数组转换为javascript对象文字:

    PHP文件(* .php)

    首先定义一个数组,用于在JavaScript文件中使用这些值:

    <?php
    $phpToJsVars = [
      'value1' => 'foo1',
      'value2' => 'foo2'    
    ];
    ?>
    

    现在将php数组值写入一个javascript对象文字中:

    <script type="text/javascript">
    var phpVars = { 
    <?php 
      foreach ($phpToJsVars as $key => $value) {
        echo '  ' . $key . ': ' . '"' . $value . '",' . "n";  
      }
    ?>
    };
    </script>
    

    Javascript文件(* .js)

    现在我们可以使用符号从任何其他.js文件访问javscript对象文字:

    phpVars["value1"]
    phpVars["value2"]
    
    链接地址: http://www.djcxy.com/p/42497.html

    上一篇: Include PHP inside JavaScript (.js) files

    下一篇: Load advanced jQuery version on page ready