繁体   English   中英

无法在 javascript 中回显 PHP 变量

[英]Unable to echo PHP variable in javascript

我有一个 PHP 变量,它包含一个字符串格式的JSON对象。

<?php
$url = "http://ip-api.com/json";
$phpObj = file_get_contents($url);
?>

Javascript:

<script>
var obj = "<?php echo $phpObj; ?>";
</script>

当我尝试在javascript回显 PHP 变量时,出现以下错误:

未捕获的语法错误:无效或意外的令牌。

我试过使用json_encode ,但它给了我同样的错误。

无需使用引号 ( " s) 和json_encode因为它已经是一个JSON对象。尝试

var obj = <?php echo $phpObj; ?>;

当我获取数据并尝试 -

<?php
$phpObj = file_get_contents("http://ip-api.com/json");
?>

<script>
var obj = <?php echo $phpObj; ?>;
console.log(obj);
</script>

我正进入(状态 -

{as: "AS45194 Syscon Infoway Pvt. Ltd.", city: "Thane", country: "India", countryCode: "IN", isp: "Syscon Infoway Pvt.", …}

在控制台中。

可以分别通过json_encodejson_decode在 PHP 和 JavaScript 之间传递简单的数组或对象数组。 例如,在您的情况下,我可以执行以下操作

<?php
  $url = "http://ip-api.com/json";
  $phpObj = file_get_contents($url);
?>
 <script>
  var obj = <?php echo $phpObj; ?>;
 </script>

由于获取的数据是 JSON。

但是,这完全取决于您的应用程序。 如果$phpObj = file_get_contents($url); 返回 json 然后我将简单地执行以下操作

<script>
  var obj = <?php echo $phpObj; ?>;
 </script>

如果它是返回的对象( $phpObj ),那么我首先将对象转换为数组,然后将其解析为 JSON 格式,然后将其回显到 JavaScript,如下所示

<script>
  var obj = <?php echo json_encode((array)$phpObj); ?>;
 </script>

如果它是一个返回的数组,那么我会将变量解析为 JSON 格式,然后将其回显到 JavaScript,如下所示

<script>
  var obj = <?php echo json_encode($phpObj); ?>;
 </script>

对于json_decode的情况, json_decode ,如果您想使用file_get_contents($url);返回的值file_get_contents($url); 假设这返回 JSON,您可以将 JSON 转换为 PHP 数组或 PHP 对象,如下所示,

$data_obj = json_decode($phpObj); //Return object not array
$data_arr = json_decode($phpObj,true); //Return array not object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM