【问题标题】:Semi-colon missing after json_decode()?json_decode() 后缺少分号?
【发布时间】:2013-02-18 17:37:12
【问题描述】:

在 PHP 中,我正在加载一个用 JSON 编写的配置文件。见摘录:

"test":{
    "regexp":"^var1=([A-Za-z0-9_]+)(;var2=([0-9]+))?(;var3=([0-9]+))?$"
}

注意分号!

当我在 PHP 5.3.3 中使用 json_decode() 加载它时,以下内容作为字符串返回:

^var1=([A-Za-z0-9_]+)(var2=([0-9]+))?(var3=([0-9]+))?$

有人知道我的分号怎么了吗?它们很重要!

【问题讨论】:

  • 如果你编码 (json_encode) 会发生什么,例如:array('test'=>'test;test'); ?
  • 封装在{}:codepad.viper-7.com/ZBe0mz时似乎工作正常

标签: php regex json


【解决方案1】:

使用 PHP 5.3.21 运行良好 这是我的代码

<?php 
    $json = '{"test":{"regexp":"^var1=([A-Za-z0-9_]+)(;var2=([0-9]+))?(;var3=([0-9]+))?$"}}';
    $tested=json_decode($json, true);
    echo $tested["test"]["regexp"];
?>

而且我的输出符合预期

^var1=([A-Za-z0-9_]+)(;var2=([0-9]+))?(;var3=([0-9]+))?$

【讨论】:

  • 感谢您排除了 json_* 函数中的错误。回顾我的代码后,我不得不承认我发现了一个胭脂str_replace(';',null,$json) 正在删除它们。
  • 没问题,很高兴我能帮上忙
猜你喜欢
  • 2021-11-27
  • 2020-08-21
  • 2013-09-07
  • 2020-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
相关资源
最近更新 更多