2013-02-18 55 views
0

在PHP中,我正在加载一个用JSON编写的配置文件。见提取:json_decode()之后缺少分号?

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

请注意分号!

当我使用json_decode()下面是作为字符串返回加载这个在PHP 5.3.3:

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

人知道发生了什么事我分号?他们有点重要!

+0

如果编码(json_encode)例如是什么发生:阵列( '测试'=> '试验;试验'); ? – tobspr 2013-02-18 17:39:45

+1

封装在'{}'中似乎工作正常:http://codepad.viper-7.com/ZBe0mz – jeroen 2013-02-18 17:41:24

回答

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]+))?$ 
+0

感谢您排除'json_ *'函数中的错误。在回顾我的代码之后,我需要羞怯地承认我找到了一个正在删除它们的rou'声'str_replace(';',null,$ json)'。 – Marc 2013-02-19 09:14:27

+0

没问题,很高兴我帮了忙 – Theodore 2013-02-19 12:48:14