如何从“标签”的外部剥离标签等;(引号)


How to strip tabs etc from outside of " (quotes) in php?

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

如何从引号外去掉这些不需要的字符,而不影响引号内有意使用的字符?

在这种情况下,不需要去掉"''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"answers"''n"不是键的一部分。此外,在一般情况下,如果这些字符是值的一部分,您可能希望保持它们的完整性(例如多行uer地址)