我有用户输入JSON。这意味着我有时会在引号之外获得标签,换行符等等。在处理之前,我想剥离这些不需要的字符。
例如(来自日志):
{#015#012#011#011#011#011"dest":"dest@email.com",#015#011#011#011#011"sender":"sender@email."}
实际上
{\r\n\t\t\t\t"dest":"dest@email.com",\r\n\t\t\t\t"sender":"sender@email."}
如何从引号外部删除这些不需要的字符,而不会影响引号内的故意字符?
答案 0 :(得分:1)
你不需要剥离" \ t"或" \ n"在这种情况下。您所要做的就是对字符串进行json_decode,然后您将获得正确的键/值对。
$json = "{\t \t\n \"dest\":\"dest@email.com\",\r\n \t\"sender\":\"sender@email.\"}";
foreach(json_decode($json,TRUE)as $key=>$value){
echo "#$key:$value#\n";
}
输出:
#dest:dest@email.com#
#sender:sender@email.#
正如您所看到的," \ t"和" \ n"不是关键的一部分。更多,在一般情况下,如果这些字符是值的一部分,您可能希望保持它们完好无损(例如,多行uer地址)