8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

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

j_random_hacker 2月前

219 0

我有一个 JavaScript 文件(扩展名是 .js,而不是 .html),其中包含几个 JavaScript 函数。我想从内部调用仅包含几个 PHP 函数的 PHP 文件中的一个 PHP 函数......

我有一个 JavaScript 文件(扩展名 .js ,不是 .html ),其中包含几个 JavaScript 函数。

我想要从一个 JavaScript 函数中调用仅包含几个 PHP 函数的 PHP 文件中的一个 PHP 函数。

  • 那可能吗?
  • 我需要在文件中“包含” .php 包含 PHP 函数的文件 .js
  • 我该如何做呢?
    例如,假设我有一个名为 myLib.php 的文件,其中包含一个名为 的函数, myFunc 该函数接受两个参数( param1 param2 )。然后我有一个 .js 文件,其中包含一个名为 的函数 myJsFunc 。如何在(JavaScript 函数)中调用 myFunc (PHP) myJsFunc ?我是否需要以某种方式将 PHP 文件包含在 .js 文件中?
帖子版权声明 1、本帖标题:在 JavaScript(.js)文件中包含 PHP
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由j_random_hacker在本站《ajax》版块原创发布, 转载请注明出处!
最新回复 (0)
  • JavaScript 在用户的浏览器上执行。PHP 在服务器上执行。它们的函数不能互相调用。您需要了解 PHP 如何创建网页(包括该网页内的任何 JavaScript 源代码)的生命周期,然后 JS 在 PHP 完成后很长时间才开始在浏览器中运行。然后,如果您确实需要让客户端和服务器相互通信,请查看 XMLHttpRequest(AJAX 等)。

  • 我基本上是在做 AJAX。实际上,我在 JS 函数中构建一个 URL,该函数通过 XMLHttpRequest 调用 PHP。

  • vlsd 2月前 0 只看Ta
    引用 4

    7 年后更新:这是糟糕的建议。请不要这样做。

    如果您只需要将变量从 PHP 传递到 javascript,那么您可以首先使用 javascript 在 php/html 文件中创建一个标签。

    <script type="text/javascript">
        var phpVars = <?php echo json_encode($vars) ?>;
    </script>
    <script type="text/javascript" src="yourScriptThatUsesPHPVars.js"></script>
    

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

    <script type="text/javascript" src="YourFunctions.js"></script>
    <script type="text/javascript">
        // assume each element of $arrayWithVars has already been json_encoded
        functionOne(<?php echo implode(', ', $arrayWithVars); ?>);
    
        functionTwo(<?php echo json_encode($moreVars) ?>, <?php echo json_encode($evenMoreVars) ?>);
    </script>
    
  • 已经过去了将近 6 年,但这个建议仍然偶尔会被点赞。这绝对是糟糕的建议。你应该认真考虑一下为什么你需要这样做,并考虑一个替代结构。如果这些变量会随着时间的推移而改变,也许可以创建一个代表你所需要的 AJAX 端点。如果它们真的只在请求时重要,至少做一个为每个变量添加标签并读取它,而不是生成 JavaScript 并将 PHP 吐入其中。

  • 它完全没有意义并且也容易受到注入攻击。 phpvars =php echo json_encode($vars); ?; 保证生成语法正确的 JS,而如果插入的文本中的任何位置有一个 ' 或其他 JS 元字符,上述代码将杀死整个脚本块。

  • 赞成,只是为了烦你:P - 因为这是一个被高度赞成的答案,也许可以将替代方案(更好的解决方案)作为答案的一部分,而不仅仅是评论?

  • 当然,从架构上来说,它并不是很好,但对于需要快速而粗糙方法的初学者来说,它工作得很好。我在答案中添加了 json_encode() 以使其更安全一些。

  • 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 的 header 函数设置正确的 header,以便将正确的 mime 类型返回给浏览器。JS 的 mime 类型通常为 \' application/javascript \'

  • 引用 10

    PHP 和 JS 不兼容;您可能不能简单地在 JS 中包含 PHP 函数。您可能想要做的是 从 JavaScript AJAX 使用 PHP JSON

  • +1你甚至不需要 JSON 响应,它实际上可以是任何东西;只要你可以以有意义的方式用 JS 解析/使用它。

  • 基于 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"]
    
  • 这有点棘手,因为 PHP 在服务器端进行评估,而 javascript 在客户端进行评估。

    我会使用 javascript 内部的 AJAX 调用来调用您的 PHP 文件,然后使用 JS 将返回的 HTML 插入到页面的某个位置。

  • 实际上,实现此目的的最佳方法是将 javascript 写在 .php 中,并在单独的文件中使用 jquery 以使用 Jquery 获取脚本文件或 jquery 加载,在 javascript 所在的文档中使用 php 包含函数。本质上它看起来就是这样的。

    .php 文件扩展名中的动态 Javascript 文件 - 包含服务器预处理的 php 变量和脚本中需要这些变量的 javascript 的混合。

    静态 Js 文件 - 使用 http://api.jquery.com/jquery.getscript/ or http://api.jquery.com/load/

    在主 html 页面中将静态文件作为常规 js 文件调用。调用静态 js 文件将强制从服务器加载动态数据。

    一些文件.php 1:

    <?php
    $somevar = "Some Dynamic Data";
    ?>
    
    $('input').val(<?php echo $somevar?>);
    

    或者简单地回应脚本,例如

    echo "$('input').val(".$somevar.");";
    

    文件2:somejsfile.js:

    $("#result").load( "file.php" );
    

    文件3 myhtml.html:

    <script src="somejsfile.js"></script>
    

    我相信这回答了许多想要混合使用 php 和 javascript 的人的问题。最好在后台处理数据,然后让用户延迟等待数据。您还可以绕过第二个文件,只需在主 html 页面上使用 php 的包含,您只需在主页上公开您的 javascript 即可。至于性能,这取决于您以及您希望如何处理所有这些。

  • 没有任何安全的方法将 php 文件包含到 js 中

    您可以将 php 文件数据 定义 javascript 全局变量 。例如,我有三个想要用作 js 的变量。

    abc.php

    <?php
    $abc = "Abc";
    $number = 052;
    $mydata = array("val1","val2","val3");
    ?>
    <script type="text/javascript">
    var abc = '<?php echo $abc?>';
    var number = '<?php echo $number ?>';
    var mydata = <?php echo json_encode($mydata); ?>;
    </script>
    

    之后, 您想要使用的 js 文件 使用

    abc.js

    function test(){
       alert('Print php variable : '+ abc +', '+number); 
    }
    
    function printArrVar(){
      alert('print php array variable : '+ JSON.stringify(mydata)); 
    }
    

    除此之外,如果您有任何不想公开显示的关键数据,那么您可以使用 js 加密数据。并从 js 中获取它的原始值,这样就没有人可以获得它的原始值。如果它们公开显示。

    这是将 php 脚本数据调用到 js 文件中的标准方法,而无需将 js 包含到 php 代码中或将 php 脚本包含到 js 中。

  • 不要弄乱通用的 php 处理程序,而是使用重写来处理 1 个文件异常:

    将 .js 文件重命名为 .php,并重写请求以使其响应 .js 请求。如果文件由 apache 提供;在 .htaccess 中添加:

    RewriteEngine on
    RewriteRule myjsfile\.js myjsfile.php [L]
    

    其次,让 .php 文件假装成 js 文件。在 php 文件中,使用以下命令启动文件:

    <?php header('Content-Type: application/javascript'); ?>
    

    瞧,您现在可以在 \'.js\' 文件中使用 php 标签了。

  • 您不能在客户端 javascript 中包含服务器端 PHP,您必须将其移植到 javascript。如果您愿意,可以使用 php.js ,它将所有 PHP 函数移植到 javascript。您还可以创建一个新的 php 文件,返回调用 PHP 函数的结果,然后使用 AJAX 调用该文件以获取结果。

  • 将 Uniter 与 php.js 结合使用,OP 就可以直接从他的 JS 环境中运行他的 php 文件

  • 由于 Javascript 在客户端的浏览器中执行,而 PHP 在服务器端执行,因此您需要的是 AJAX - 本质上,您的脚本向 PHP 脚本发出 HTTP 请求,并传递任何所需的参数。脚本调用您的函数并输出结果,最终由 Ajax 调用获取结果。通常,您不会同步执行此操作(等待结果)- AJAX 中的“A”代表异步!

  • 没错...这就是我正在做的。我正在构建一个 URL,在使用 XMLHttpRequest 的 javascript 函数中调用一个 php 函数。问题是我可以在包含的 .php 文件中调用 php 函数吗?还是我必须将 PHP 代码隔离在一个文件中,该文件包含 js 代码直接调用的直接 PHP 代码(无函数)。我只是不想有一堆包含代码的 PHP 文件。我想将代码合并到 .php 文件中的 PHP 函数中。

返回
作者最近主题: