我應該如何轉義一個將要進入Javascript字符串的字符串? URLEncode的(X)? str_replace函數( 「 '」, 「\'」,X)?PHP:我應該如何轉義一個將要進入Javascript字符串的字符串?
0
A
回答
-1
addslashes
應該沒問題。
0
有幾件事你應該做,以逃避你的意見。至少做1:
的addslashes功能將之前單(
'
)添加反斜槓和雙("
)引號,反斜槓(\
)和NUL(\0
)。對於額外的安全包裹在CDATA標記你的整個腳本部分,所以你可以驗證腳本XHTML,即使它包含
<
或>
:<script> // <![CDATA[ alert("<?php echo addslashes($message); ?>"); // ]]> </script>
此外,如果你真的偏執你將分解
</script>
和]]>
的任何事件,因爲這些可能會干擾HTML解析器。例如,將</script>
用<"+"/script>
和]]>
替換爲]]"+">
。這又取決於你如何保護自己免受惡意/可疑的用戶輸入。
+2
你做錯了(見http://stackoverflow.com/questions/236073)。 – Gumbo 2010-08-17 15:30:42
1
使用json_encode
如果可用(因爲PHP 5.2):
var str = <?php echo json_encode($str); ?>;
否則,使用您可以使用rawurlencode
,並與decodeURIComponent
解碼:
var str = decodeURIComponent("<?php echo rawurlencode($str); ?>");
2
使用json_encode
所以你可以做
$page_params = array(
'user_logged_in' => $suer->IsActive(),
'some_string' => "sajdhf\"test''z\'\fsdf"
'ts' => time()
);
$page_params = json_encode($page_params);
然後在你的模板,你可以去
var page_params = <?php echo $page_params ?>;
女巫會產生
var page_params = {"user_logged_in":false,"some_string":"sajdhf\"test''z\'\fsdf","ts":2452346543}
這種方式,您可以設置多個變量1串和轉義是由JSON庫
完成相關問題
- 1. 如何將具有特殊字符的字符串轉換爲轉義字符串的另一個字符串
- 2. 我如何將java字符串轉換爲javascript字符串?
- 3. JavaScript的:我應該使用 '或「字符定義字符串
- 4. 的JavaScript字符串與轉義字符
- 5. JavaScript的轉義字符串
- 6. PHP將JSON字符串轉換爲HTML輸入值 - 需要字符轉義
- 7. 我需要轉義這個MATLAB字符串中的字符嗎?
- 8. 如何正確轉義該字符串
- 9. 如何將字符串插入另一個字符串?
- 10. 我應該如何替換空字符串的單個字符
- 11. 如何將轉義字符寫入字符串?
- 12. 我應該如何將控制字符添加到字符串
- 13. unicode字符串轉換到一個轉義ASCII字符串
- 14. Clojure字符串加入轉義字符
- 15. 轉義此字符串? (PHP)
- 16. PHP轉義字符串
- 17. 如何將字符串的字符串轉換爲字符?
- 18. 如何將php字符串值轉換爲android字符串值?
- 19. 字符串轉義字符
- 20. 我應該如何在JSON中轉義字符串?
- 21. javascript將字符串視爲字符數組 - 如何更改該字符串?
- 22. 當我需要轉義Html字符串?
- 23. 將一個字符串轉換爲另一個字符串
- 24. 如何將輸入字符串轉換爲包含該字符串的每個字符的數組 - ruby
- 25. 字符串輸入轉義
- 26. 如何在PHP中轉義字符串?
- 27. php如何爲preg_match轉義字符串?
- 28. 字符串文字如何等於char *,我應該如何將一個字符串作爲參數
- 29. 將ASCII字符轉換爲十六進制轉義字符串
- 30. 如何將轉義字符串轉換爲C中的一個字符
這是(勸阻)內聯JavaScript('')或在一個單獨的腳本塊? – 2010-08-17 15:25:51