|
php 函數(shù) strip_tags 提供了從字符串中去除 HTML 和 php 標(biāo)記的功能,該函數(shù)嘗試返回給定的字符串 str 去除空字符、HTML 和 php 標(biāo)記后的結(jié)果。
由于 strip_tags() 無(wú)法實(shí)際驗(yàn)證 HTML,不完整或者破損標(biāo)簽將導(dǎo)致更多的數(shù)據(jù)被刪除。
比如下述代碼:
復(fù)制代碼 代碼如下:
<div>string</div>string<string<b>hello</b><div>string</div>
通過(guò) strip_tags($str, ‘<div>') 過(guò)濾,我們可能期望得到如下結(jié)果:
復(fù)制代碼 代碼如下:
<div>string</div>string<stringhello<div>string</div>
而實(shí)際操作結(jié)果是這樣的:
復(fù)制代碼 代碼如下:
<div>string</div>string
這一切都是因?yàn)榧蛹t的那個(gè)左尖括號(hào),查了 php 的文檔,有一個(gè)警告提示:
由于 strip_tags() 無(wú)法實(shí)際驗(yàn)證 HTML,不完整或者破損標(biāo)簽將導(dǎo)致更多的數(shù)據(jù)被刪除。
既然在執(zhí)行過(guò)濾前無(wú)法驗(yàn)證代碼正確性,遇到和標(biāo)簽相關(guān)的字符 “<” 或 “>” 后面的代碼就全掛了!
php技術(shù):PHP函數(shù)strip_tags的一個(gè)bug淺析,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。