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

2022-08-30 10:42:04

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

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

  • 这可能吗?
  • 我是否需要在文件中“包含”包含 PHP 函数的文件?.php.js
  • 我该怎么做?
    例如,假设我有一个名为 myLib 的文件.php其中包含一个名为的函数,该函数采用两个参数 ( 和 )。然后我有一个文件,其中包含一个名为.如何从(JavaScript函数)内部调用(PHP)?难道我不需要以某种方式在文件中包含PHP文件吗?myFuncparam1param2.jsmyJsFuncmyFuncmyJsFunc.js

答案 1

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

如果你只需要将变量从PHP传递到javascript,你可以在php/html文件中使用javascript开始有一个标签。

<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>

答案 2
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的head函数设置正确的标头,以便将正确的mime类型返回到浏览器。JS的哑剧类型通常是“application/javascript”。"