[英]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_encode
和json_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.