如何从php中的“(引号)”外部删除标签等?

时间:2015-03-01 00:54:03

标签: php regex json

我有用户输入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."}

如何从引号外部删除这些不需要的字符,而不会影响引号内的故意字符?

1 个答案:

答案 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地址)