[英]From php json_encode to jquery decode
我使用了眾所周知的“ hack”(json編碼功能)來防止某些字符弄亂我的html,我從API接收到一個可以包含單引號或雙引號(以及其他特殊字符)的描述字段。 所以:
<div class="someThing" data-fulldescription=<?=json_encode($textFromApi);?>>
...
</div>
現在,我使用jquery讀取該數據字段,然后在div中打印它:
$('#brand-modal-content').html($(this).parents('.someThing').data('fulldescription'));
問題是,引號現在由PHP函數編碼,並且某些字符被“ \\ u00e8”或“ \\ u00f9”替換,有沒有辦法使用jquery重新格式化文本?
您正在以非常錯誤(甚至不安全)的方式將內容注入HTML。 改為這樣做:
data-fulldescription="<?=htmlspecialchars(json_encode($textFromApi));?>"
這樣,無論內部內容如何,JSON都將被正確編碼並安全地注入。 然后,您可以像這樣解碼它:
var decoded = JSON.parse($(this).parents('.someThing').data('fulldescription'));
這些步驟的組合將完美地保留JSON,無論它代表什么(如果您假設它是字符串,都可以使用快捷方式,但是為什么不總是100%安全?)。 然后,您可以對解碼后的值進行任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.