我有一些Ajaxing,我有2塊源代碼。第一個是:如何在JavaScript/PHP中查看2段代碼是否相同?
window.lastSavedContents = "<?php echo htmlentities($contents); ?>";
第二個是用戶鍵入到文本編輯器中的任何內容。問題是window.lastSavedContents
是htmlentities
編碼,而第二個塊不是。
如何檢查等效性?
我有一些Ajaxing,我有2塊源代碼。第一個是:如何在JavaScript/PHP中查看2段代碼是否相同?
window.lastSavedContents = "<?php echo htmlentities($contents); ?>";
第二個是用戶鍵入到文本編輯器中的任何內容。問題是window.lastSavedContents
是htmlentities
編碼,而第二個塊不是。
如何檢查等效性?
首先,不使用htmlentities
,但htmlspecialchars
,只有編碼<
,>
,&
和"
。這樣,你可以使用
var decoded = encoded.replace(/&/g, '&')
.replace(/</g, '<')
.replace(/"/g, '"')
.replace(/>/g, '>');
只需更換這些實體如果你仍然想使用htmlentities
你可以簡單地創建一個臨時div
:
var div = document.createElement('div');
div.innerHTML = encoded;
var decoded = div.firstChild.nodeValue;
你可以找到圍繞實體編碼數據的方法,或者在Javascript中解碼window.lastSavedContents
。這裏有一個功能,這將幫助你做到這一點:http://phpjs.org/functions/html_entity_decode:424