本文目錄一覽:
關於php文本域中 html標籤轉義的問題,望大家幫忙解決看看
經本人測試,據我的理解,問題的原因應該不是腳本的問題,你用firebug進行觀察會發現,當你傳送post的時候,其中的html文本域內容已經進行了編碼,但這個編碼會在你腳本運行之前進行還原,所以,不會影響你的正則腳本運算。
據我的估計,原因在於:你在輸入正則表達式的時候,可能不是太正確。以下是我的測試過程:
運行訪問你的腳本,在文本域里將你的腳本源代碼粘上,再在正則表達輸入框里輸入:
%input
type(.*)/%si
你查看網頁源代碼,其輸出結果如下:
preArray
(
[0]
=
Array
(
[0]
=
input
type=”submit”
name=”button”
value=”提交”
/
)
[1]
=
Array
(
[0]
=
=”submit”
name=”button”
value=”提交”
)
)
/pre
說明,還是匹配到了html標籤。
而第1個匹配項,在瀏覽器里會顯示為一個html按鈕,原因在於這是正規的html語句,所以,瀏覽器會將這個表現出來。
WordPress中轉義HTML與過濾鏈接的相關PHP函數使用解析
esc_html()(轉義
Html)
esc_html()
函數用來轉義
Html
代碼,讓
Html
代碼不轉義。
用法
esc_html(
$text
);
參數
$text
(字元串)(必須)要轉義的字元串。
默認值:None
返回值
(字元串)返迴轉義後的字元。
例子
echo
esc_html(
‘a
href=””A
link/a’
);
上邊的代碼將輸出:
WordPress
函數:esc_html()(轉義
Html)
(為了防止瀏覽器轉碼,我直接截了一張圖)
更多
此函數位於:wp-includes/formatting.php
esc_url()(過濾鏈接)
很多
URL
會有一些小錯誤,用
esc_url()
函數可以屏蔽或者修正這些錯誤,並且可以拒絕不安全的協議。
esc_url()
函數的工作內容:
默認拒絕不是下面協議的
URL:defaulting
to
http、https、ftp、ftps、mailto、news、irc、gopher、nntp、feed
和
telnet
刪除無效字元和危險的字元
將字元轉換成
HTML
實體字元
使用方法
esc_url(
$url,
$protocols,
$_context
);
參數
$url
(字元串)(必須)要被過濾的
URL.
默認值:None
$protocols
(數組)(可選)可以接收協議的數組,如果沒有設置,則默認為:defaulting
to
http、https、ftp、ftps、mailto、news、irc、gopher、nntp、feed
和
telnet.
默認值:None
$_context
(字元串)(可選)如何返回
URL.
默認值:(字元串)display
返回值
(字元串)返回過濾後的鏈接。
例子
?php
echo
esc_url(
”
);//輸出:
?
更多
此函數位於:wp-includes/formatting.php
php輸出html時轉義,該怎麼處理
htmlspecialchars() 函數把預定義的字元轉換為 HTML 實體。
語法:
htmlspecialchars(string,flags,character-set,double_encode)
預定義的字元是:
(和號)成為 amp;
” (雙引號)成為 quot;
‘ (單引號)成為 ‘
(小於)成為 lt;
(大於)成為 gt;
htmlspecialchars_decode() 函數把一些預定義的 HTML 實體轉換為字元。
語法:
htmlspecialchars_decode(string,flags)
會被解碼的 HTML 實體是:
amp; 解碼成 (和號)
quot; 解碼成 ” (雙引號)
‘ 解碼成 ‘ (單引號)
lt; 解碼成 (小於)
gt; 解碼成 (大於)
原創文章,作者:QPSL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/135190.html