2014-01-22 68 views
1

我在問這個,因爲我使用了一種可行的技巧,但我認爲我將來會有問題。用HTML格式處理JSON

我使用SimpleXML和DOM來管理源文件(需要所有表單的html文件),在php中生成html表單。所以我得到了我的表格並填寫了一些屬性。這裏有一個例子:

<input type="hidden" name="arquivo_tipos" value="{arquivo_tipos}" /> 

{} arquivos_tipos是一個JSON字符串,不會雙引號內工作。但是,如果我創建的源代碼是這樣的:

<input type="hidden" name="arquivo_tipos" value='{arquivo_tipos}' /> 

通過PHP進行處理後,將返回到雙引號(我挑從大量的XML節點的形式)。所以我的解決方案是用這種腳本的替換屬性:

html = html.replace('"{arquivo_tipos}"', '\'[{"ext":"jpg","nome":"Imagem JPEG"},{"ext":"jpeg","nome":"Imagem JPEG"},{"ext":"gif","nome":"Bitmap GIF"},{"ext":"png","nome":"Imagem PNG"}]\''); 

這是JavaScript的,但在PHP我用str_replace函數同樣的伎倆。

問題是,這是最終的代碼,所以它可以工作,但是如果另一個進程採用這個結果,它會在將來失敗。有沒有更好的方法,這是一個正確的方法?

回答

0

使用PHP 用htmlspecialchars功能,它可以逃脫

double-quotes to &quot; 
single-quotes to &#039; 

http://tw1.php.net/htmlspecialchars

+0

對於文本是一個很好的解決方案,但該字符串是一個JSON聲明,我不認爲會通過JavaScript或解析PHP的請求。 – Gustavo