2014-03-14 77 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出現相同的功能。