2014-03-14 45 views
0

我用PHP制作了一个基本的标签打印web应用程序,我需要一种方法来存储模板。它们由几个小文本条目和一些数字和布尔值组成。通常我只是使用JSON,但文本值包含JSON无法处理的换行符。 XML是一种痛苦,因为我不得不逃避HTML标记。我可以使用另一种替代格式来存储这种人类可读的信息吗?当需要换行符时替代JSON?

+3

你应该看看http://stackoverflow.com/questions/4253367/how-to-escape-a-json-string-containing-newline-characters-using-javascript – falinsky

+0

我想他想用PHP编码和然后发送给客户,如果我正确阅读。引用的文章描述了如何在JavaScript中为JSON编码字符串。 –

+0

我实际上只是试图将文件保存在服务器上,然后再检索它。没有什么被发送到客户端的Javascript。 – JaredL

回答

0

我假设你想准备好数据并将其编码成服务器上的JSON然后发送给客户端。 This article给出了一个很好的解释,说明如何准备数据以逃避客户端评估的适当值。

PHP(> 5.2)的新版本具有将执行此任务的json_encode()函数:

$str_valid=json_encode($str); 

有此功能的多种选择,以获得更多信息读取the docs

PHP的旧版本需要提供此功能:

/** 
* @param $value 
* @return mixed 
*/ 
function escapeJsonString($value) { # list from www.json.org: (\b backspace, \f formfeed) 
    $escapers = array("\\", "/", "\"", "\n", "\r", "\t", "\x08", "\x0c"); 
    $replacements = array("\\\\", "\\/", "\\\"", "\\n", "\\r", "\\t", "\\f", "\\b"); 
    $result = str_replace($escapers, $replacements, $value); 
    return $result; 
} 

有趣的是,文章引用回到这个地方StackOverflow post出现相同的功能。