A. 請問php中的轉義字元是把php代碼轉義成html代碼,對嗎
不是,是針對特殊的符號設定的,避免重復出現歧義 比如說"\"\""就是" "" " 但是後面這樣寫是直接錯誤!
給講的清楚的分數喔,不要看字數!
B. 用php把html代碼存入mysql為什麼需要轉義
因為html中難免會出現單引號 或 雙引號這種情況。
如果不去進行轉義的話。插入的時候就會在引號位置截斷,導致sql語句無法執行。
C. php輸出html標簽的問題
php輸出html標簽需要轉義。
比如要輸出:<a href=test>Test</a>整個字元串,那麼需要這么寫:
echo "<a href=test>Test<\/a>";
D. json中包含html代碼,php如何快速轉義
$data=array('a'=>'<ahref="123">321</a>','b'=>'<label>1/1</label>');
$json=json_encode($data);
使用json_encode
E. php,html轉義後插入資料庫問題
一般都是過濾掉單雙引號就可以了
即使是轉義後
也只是把<
轉義成
<
當從資料庫中讀取的時候
輸入到頁面以後
瀏覽器就會自動的顯示<了
F. php函數怎麼轉換html中的特殊字元
方法/步驟
1
htmlspecialchars()轉義特別的字元為HTML實體;
'&' (ampersand) becomes '&' '"' (double quote) becomes '"' when ENT_NOQUOTES is not set. ''' (single quote) becomes ''' only when ENT_QUOTES is set. '<' (less than) becomes '<' '>' (greater than) becomes '>'
2
htmlspecialchars_decode()將實體轉成HTML代碼,函數1的反函數。
3
htmlentities()
這個是全部轉換html實體,和htmlspecialchars()區別在於,這個函數是轉義全部的字元,而htmlspecialchars()僅僅轉義上面限定的5個特殊字元!
html_entity_decode() 函數
把 HTML 實體轉換為字元。
G. WordPress中轉義HTML與過濾鏈接的相關PHP函數使用解析
esc_html()(轉義
Html)
esc_html()
函數用來轉義
Html
代碼,讓
Html
代碼不轉義。
用法
esc_html(
$text
);
參數
$text
(字元串)(必須)要轉義的字元串。
默認值:None
返回值
(字元串)返回轉義後的字元。
例子
echo
esc_html(
'<a
href="http://www.example.com/">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(
'www.endskin.com'
);//輸出:http://www.endskin.com
?>
更多
此函數位於:wp-includes/formatting.php
H. 關於php文本域中 html標簽轉義的問題,望大家幫忙解決看看
經本人測試,據我的理解,問題的原因應該不是腳本的問題,你用firebug進行觀察會發現,當你傳送post的時候,其中的html文本域內容已經進行了編碼,但這個編碼會在你腳本運行之前進行還原,所以,不會影響你的正則腳本運算。
據我的估計,原因在於:你在輸入正則表達式的時候,可能不是太正確。以下是我的測試過程:
運行訪問你的腳本,在文本域里將你的腳本源代碼粘上,再在正則表達輸入框里輸入:
%<input
type(.*)/>%si
你查看網頁源代碼,其輸出結果如下:
<pre>Array
(
[0]
=>
Array
(
[0]
=>
<input
type="submit"
name="button"
value="提交"
/>
)
[1]
=>
Array
(
[0]
=>
="submit"
name="button"
value="提交"
)
)
</pre>
說明,還是匹配到了html標簽。
而第1個匹配項,在瀏覽器里會顯示為一個html按鈕,原因在於這是正規的html語句,所以,瀏覽器會將這個表現出來。
I. 代碼 html中是</br>,為什麼在php中必須是echo "</br>"
因為在PHP中echo "</br>";是用php語言轉義到html標簽語句被這樣才能被伺服器識別。
因此,在具體的代碼運用過程中,盡量減少這種轉義的過程。這樣會增加伺服器的運算負擔。盡量保證html與php分離,比如說smarty 就是一個很好的例子。
J. php輸出html時轉義,該怎麼處理
htmlspecialchars() 函數把預定義的字元轉換為 HTML 實體。
語法:
htmlspecialchars(string,flags,character-set,double_encode)
預定義的字元是:
& (和號)成為 &
" (雙引號)成為 "
' (單引號)成為 '
< (小於)成為 <
> (大於)成為 >
htmlspecialchars_decode() 函數把一些預定義的 HTML 實體轉換為字元。
語法:
htmlspecialchars_decode(string,flags)
會被解碼的 HTML 實體是:
& 解碼成 & (和號)
" 解碼成 " (雙引號)
' 解碼成 ' (單引號)
< 解碼成 < (小於)
> 解碼成 > (大於)