Heim > Backend-Entwicklung > PHP-Tutorial > json_decode解析backslash时报错

json_decode解析backslash时报错

WBOY
Freigeben: 2016-06-06 20:41:30
Original
1324 Leute haben es durchsucht

<code>$array = array(
    'code_pattern' => '\d{6}'
);
//ok
print_r(json_decode(json_encode($array),true));
//error
print_r(json_decode('{"code_pattern":"\\d{6}"}',true));
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这个问题怎么解决?

补充:

<code>$array = array(
    'code_pattern' => '\d{6}'
);

$arr_str = json_encode($array);
echo $arr_str . "\n";
//ok
print_r(json_decode($arr_str,true));
//error
$arr_dec = json_decode('{"code_pattern":"\\d{6}"}',true);
var_dump($arr_dec);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

结果:

<code>.{"code_pattern":"\\d{6}"}
Array
(
    [code_pattern] => \d{6}
)
NULL


Time: 102 ms, Memory: 7.25Mb
</code>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

<code>$array = array(
    'code_pattern' => '\d{6}'
);
//ok
print_r(json_decode(json_encode($array),true));
//error
print_r(json_decode('{"code_pattern":"\\d{6}"}',true));
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这个问题怎么解决?

补充:

<code>$array = array(
    'code_pattern' => '\d{6}'
);

$arr_str = json_encode($array);
echo $arr_str . "\n";
//ok
print_r(json_decode($arr_str,true));
//error
$arr_dec = json_decode('{"code_pattern":"\\d{6}"}',true);
var_dump($arr_dec);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

结果:

<code>.{"code_pattern":"\\d{6}"}
Array
(
    [code_pattern] => \d{6}
)
NULL


Time: 102 ms, Memory: 7.25Mb
</code>
Nach dem Login kopieren
Nach dem Login kopieren

你输出一下json_encode($array)的值就知道为什么了。

测试了一下,json_encode($arry)会输出{"code_pattern":"\\d{6}"},它将\进行了转义。但是你需要使用json_decode('{"code_pattern":"\\\\d{6}"}')才能得到想要的结果\d{6}

题外话:SF怎么不支持markdown删除线的语法呢?我在编辑答案的时候是可以看到效果的,展示出来就没有了。

Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage