加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP preg_split和替换

发布时间:2020-12-13 17:16:41 所属栏目:PHP教程 来源:网络整理
导读:我目前正在运行此代码.它正在拆分变量$json,其中有},{但它也删除了这些字符,但实际上我需要json_decode函数的尾随和前导括号才能工作.我创造了一个工作,但想知道是否有更优雅的解决方案? ?php$json = '{"a":1,"b":2,"c":3,"d":4,"e":5},{"a":1,"e":5}';$ind
我目前正在运行此代码.它正在拆分变量$json,其中有},{但它也删除了这些字符,但实际上我需要json_decode函数的尾随和前导括号才能工作.我创造了一个工作,但想知道是否有更优雅的解决方案?

<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5},{"a":1,"e":5}';
$individuals = preg_split('/},{/',$json);

$loop_count =1;
foreach($individuals as $object){
    if($loop_count == 1){$object .='}';}
    else{$object ="{".$object;}
    print_r(json_decode($object));
    echo '<br />';
$loop_count++;
}
?>

编辑:
$json变量实际上是作为json对象检索的.一个恰当的例子是

[{“id”:”foo”,”row”:1,”col”:1,”height”:4,”width”:5},{“id”:”bar”,”row”:2,”col”:3,”width”:5}]

解决方法

正如你(大概)已经知道的那样,由于逗号和两个对象,你必须开始的字符串是无效的json;它基本上是两个json字符串,它们之间有逗号.

你试图通过拆分来解决这个问题,但是有一个更简单的方法可以解决这个问题:

解决方法只是通过将字符串包装在方括号中将字符串转换为有效的JSON:

$json = '[' . $json . ']';

瞧.该字符串现在是有效的json,只需调用json_decode()即可成功解析.

希望有所帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读