在Javascript文件中插入PHP变量值

Inserting PHP variable value in Javascript file

本文关键字:PHP 变量值 插入 Javascript 文件      更新时间:2023-09-26

我有一个JavaScript文件,其中有一个硬编码的BASEURL变量,该值随后被文件中的其他函数使用。我希望这个url值是动态设置的,这样我就不需要为不同的安装手动更改它。是否可以在JavaScript文件中插入PHP变量值?

与其尝试将PHP混合到javascript文件中,不如在HTML模板中执行以下操作:

<head>
    <script>
        var BASEURL = "<?php echo base_url(); ?>";
    </script>
    <script src="/path/to/my_script1.js"></script>
    <script src="/path/to/my_script2.js"></script>
</head>

这设置了变量,并允许所有嵌入的脚本访问它。base_url()将被您使用PHP获取基本url的任何方法所取代。

假设您有一个用PHP动态编写的JS文件;file1.php

<?php
  header('Content-Type: application/javascript');
  $var = $_GET['var1'];
  echo "jsvar = ".$var.";";
?>

file1.php的客户端源代码?var1=10将是

jsvar=10;

有几种方法:

  1. 通过AJAX加载baseurl,但也许这会减慢速度,也许你需要更早地加载它。

  2. 让javascript文件通过php解析器运行。然后你可以使用内联回声。

  3. 最方便、最简单的方法是在页面的html/php输出中创建<script>var baseurl = '...';</script>

您需要将文件设置为php文件,而不是js文件。从那里,你可以在文件中包含任何PHP标记来发挥你的动态魔法。让这整件事发挥作用的关键是在标题中,你需要这样设置:

<?php
    Header("content-type: application/x-javascript");
      echo 'var js_var = ' . $php_var;
?>
alert (js_var);

这种技术也可以用于CSS文件。

Heredoc今天为我工作:

<?php
echo <<<ANYNAME
<script LANGUAGE="JavaScript" type="text/javascript">
<!--
// code ...
var myLatlng = new google.maps.LatLng($lat, $lon);
// code cont. ...
//-->
</script>
ANYNAME;
?>

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

php变量在html中没有其他方式:<?php echo$var>