HTML 处理
HTML 处理功能由 ginkgo\Html
类完成,如:
use ginkgo\Html;
$str = '<div>test</div>'
echo Html::encode($html);
输出结果
<div>test</div>
静态方法
encode
HTML 编码
function encode( $html )
参数
html
HTML 代码
返回
- 编码后的字符串
decode
HTML 解码
function decode( $string )
参数
string
待解码的字符串
返回
- HTML 代码
过滤 HTML 标签
例如:过滤所有 HTML 标签
use ginkgo\Html;
$html = Html::instance();
$str = '<div>test</div>'
echo $html->stripTag($str);
输出结果
test
如果要保留指定的标签,可以这样:
use ginkgo\Html;
$html = Html::instance();
$tagAllow = array('h1', 'p');
$html->setTagAllow($tagAllow);
$str = '<div><p>test</p></div>'
$html->stripTag($str);
输出结果
<p>test</p>
过滤 HTML 属性
例如:过滤所有 HTML 属性
use ginkgo\Html;
$html = Html::instance();
$str = '<div id="test">test</div>'
echo $html->stripAttr($str);
输出结果
<div>test</div>
如果要保留指定的属性,可以这样:
use ginkgo\Html;
$html = Html::instance();
$attrAllow = array('id', 'class');
$html->setAttrAllow($attrAllow);
$str = '<div id="test" title="test">test</div>'
echo $html->stripAttr($str);
输出结果
<div id="test">test</div>
还可以设置特例,保留特殊标签的特殊属性:
use ginkgo\Html;
$html = Html::instance();
$attrExcept = array(
'a' => array('href', 'class'), //保留 a 标签的 href、class 属性
'span' => array('class') //保留 span 标签的 class 属性
);
$html->setAttrExcept($attrExcept);
$str = '<div id="test" title="test"><a href="#" id="test_href">test</a></div>'
echo $html->stripAttr($str);
输出结果
<div><a href="#">test</a></div>
忽略标签,即不对这些标签进行过滤:
use ginkgo\Html;
$html = Html::instance();
$attrIgnore = array('a', 'span'); // 不对这些标签进行过滤
$html->setAttrIgnore($attrIgnore);
$str = '<div id="test" title="test"><a href="#" id="test_href">test</a></div>'
echo $html->stripAttr($str);
输出结果
<div><a href="#" id="test_href">test</a></div>