2012-05-20 44 views
1

將json字符串(編碼的php數組)放入html標記的最佳方法是什麼?將Json字符串放入html標記的最佳方法是什麼?

<?php 
$content = array(key1=>'value 1', key2=>'value 2'); 
?> 
<span class="someclass" data="<?php echo(json_encode($content)); ?>">Stuff Here</span> 

這是無效的,因爲當它被編碼時它將包含打破html的語音標記。

如果我使用php函數htmlentities這樣就足夠了嗎?還是可能還有一些字符會破壞它?

謝謝。

+0

我不確定爲什麼你會這樣想,但'htmlentities'應該足夠了。一般來說,在問「這樣做還是足夠的」之前,你應該嘗試做,然後,如果結果不令人滿意,請發佈問題。 –

+0

好的謝謝。我只是想檢查一下不會有任何可能會搞砸的晦澀人物。 原因是我在包含大量結果表的網站上創建了「報告問題」模塊。我想爲表格中的每個項目創建一個唯一的錯誤代碼。我只想在有人請求時創建代碼,但通過單擊單元來減少數據庫查詢。當他們點擊一個單元格時,它會將json數據數組(ids)發送到另一個php頁面,然後它將找到相關的代碼或創建一個並返回它。 –

+0

它現在在網站上工作http://wncba.co.uk/results/ –

回答

2

你可以使用base64編碼,可以通過你希望使用(比如JavaScript),每一種語言輕鬆解碼:

<span class="someclass" data="<?php echo base64_encode (json_encode ($content)); ?>">Stuff Here</span> 

它只使用A-Z,A-Z和0-9。

+0

謝謝。這正是我所期待的。 –

1

請勿將其放入數據屬性中。生成一個javascript變量比較容易,比如

<script> 
    var data = <?php echo json_encode() ?> 
</script> 
相關問題