html删除的标签属性,如何从html标签中删除属性?
這是一個(gè)功能,可以讓你去除所有的屬性,除了那些你想:
function stripAttributes($s, $allowedattr = array()) {
if (preg_match_all("/]*\\s([^>]*)\\/*>/msiU", $s, $res, PREG_SET_ORDER)) {
foreach ($res as $r) {
$tag = $r[0];
$attrs = array();
preg_match_all("/\\s.*=(['\"]).*\\1/msiU", " " . $r[1], $split, PREG_SET_ORDER);
foreach ($split as $spl) {
$attrs[] = $spl[0];
}
$newattrs = array();
foreach ($attrs as $a) {
$tmp = explode("=", $a);
if (trim($a) != "" && (!isset($tmp[1]) || (trim($tmp[0]) != "" && !in_array(strtolower(trim($tmp[0])), $allowedattr)))) {
} else {
$newattrs[] = $a;
}
}
$attrs = implode(" ", $newattrs);
$rpl = str_replace($r[1], $attrs, $tag);
$s = str_replace($tag, $rpl, $s);
}
}
return $s;
}
在示例它會(huì)是:
echo stripAttributes('
');
或如果你例如。要保持“class”屬性:
echo stripAttributes('
', array('class'));
或者
假設(shè)你將消息發(fā)送到收件箱和你CKEDITOR組成你的消息,你可以如下分配功能,并將它顯示給$ message變量在發(fā)送之前。請(qǐng)注意,名稱為stripAttributes()的函數(shù)將去掉所有不必要的html標(biāo)簽。我試過了,它工作正常。我只看到了我加入的格式,如粗體e.t.c.
$message = stripAttributes($_POST['message']);
或 可以echo $message;預(yù)覽。
總結(jié)
以上是生活随笔為你收集整理的html删除的标签属性,如何从html标签中删除属性?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html文档打开错误,我的html的文档
- 下一篇: 完整叙述html的语法结构,html a