簡體   English   中英

在PHP中轉義Javascript

[英]Escaping Javascript in PHP

我正在尋找在PHP中轉義一些Javascript文本的最佳方法,而json_encode是完成此工作的錯誤工具。

問題來自此行:


echo " onclick=\"SwitchDiv('" . $option . "')\"";
如果$option有撇號,則這是客戶端失敗的多汁球。 但是直接執行json_encode (在其他情況下效果很好)並沒有幫助:
 echo " onclick=\\"SwitchDiv(" . json_encode($option) . ")\\""; 
這將創建一個onclick="SwitchDiv("athlete's foot")"的輸出字符串,導致onclick值過早終止。 (如果將onclick值括在單引號中,也會發生這種情況。)

有沒有解決這個問題的優雅方法? 我是否應該僅通過正則表達式將json_encode輸出漏斗,從而避免使用單引號?

json_encode是適合此工作的工具。 您的問題是由於您還將該Javascript包含在HTML屬性中而引起的 ,因此還需要對其進行htmlspecialchars編碼。

echo " onclick=\"SwitchDiv(" . htmlspecialchars(json_encode($option)) . ")\"";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM