HTML 处理

HTML 处理功能由 ginkgo\Html 类完成,如:

  1. use ginkgo\Html;
  2. $str = '<div>test</div>'
  3. echo Html::encode($html);

输出结果

  1. &lt;div&gt;test&lt;/div&gt;

静态方法

encode HTML 编码

  1. function encode( $html )

参数

  • html HTML 代码

返回

  • 编码后的字符串

decode HTML 解码

  1. function decode( $string )

参数

  • string 待解码的字符串

返回

  • HTML 代码

过滤 HTML 标签

例如:过滤所有 HTML 标签

  1. use ginkgo\Html;
  2. $html = Html::instance();
  3. $str = '<div>test</div>'
  4. echo $html->stripTag($str);

输出结果

  1. test

如果要保留指定的标签,可以这样:

  1. use ginkgo\Html;
  2. $html = Html::instance();
  3. $tagAllow = array('h1', 'p');
  4. $html->setTagAllow($tagAllow);
  5. $str = '<div><p>test</p></div>'
  6. $html->stripTag($str);

输出结果

  1. <p>test</p>

过滤 HTML 属性

例如:过滤所有 HTML 属性

  1. use ginkgo\Html;
  2. $html = Html::instance();
  3. $str = '<div id="test">test</div>'
  4. echo $html->stripAttr($str);

输出结果

  1. <div>test</div>

如果要保留指定的属性,可以这样:

  1. use ginkgo\Html;
  2. $html = Html::instance();
  3. $attrAllow = array('id', 'class');
  4. $html->setAttrAllow($attrAllow);
  5. $str = '<div id="test" title="test">test</div>'
  6. echo $html->stripAttr($str);

输出结果

  1. <div id="test">test</div>

还可以设置特例,保留特殊标签的特殊属性:

  1. use ginkgo\Html;
  2. $html = Html::instance();
  3. $attrExcept = array(
  4. 'a' => array('href', 'class'), //保留 a 标签的 href、class 属性
  5. 'span' => array('class') //保留 span 标签的 class 属性
  6. );
  7. $html->setAttrExcept($attrExcept);
  8. $str = '<div id="test" title="test"><a href="#" id="test_href">test</a></div>'
  9. echo $html->stripAttr($str);

输出结果

  1. <div><a href="#">test</a></div>

忽略标签,即不对这些标签进行过滤:

  1. use ginkgo\Html;
  2. $html = Html::instance();
  3. $attrIgnore = array('a', 'span'); // 不对这些标签进行过滤
  4. $html->setAttrIgnore($attrIgnore);
  5. $str = '<div id="test" title="test"><a href="#" id="test_href">test</a></div>'
  6. echo $html->stripAttr($str);

输出结果

  1. <div><a href="#" id="test_href">test</a></div>