中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

php過濾html標(biāo)記屬性類用法實例
來源:易賢網(wǎng) 閱讀:1311 次 日期:2014-09-29 12:10:42
溫馨提示:易賢網(wǎng)小編為您整理了“php過濾html標(biāo)記屬性類用法實例”,方便廣大網(wǎng)友查閱!

本文實例講述了php 過濾html標(biāo)記屬性類及其用法。是PHP項目開發(fā)中比較常見的實用技巧。分享給大家供大家參考。具體方法如下:

HtmlAttributeFilter.class.php類文件如下:

?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 <?php /** HTML Attribute Filter * Date: 2013-09-22 * Author: fdipzone * ver: 1.0 * * Func: * public strip 過濾屬性 * public setAllow 設(shè)置允許的屬性 * public setException 設(shè)置特例 * public setIgnore 設(shè)置忽略的標(biāo)記 * private findElements 搜尋需要處理的元素 * private findAttributes 搜尋屬性 * private removeAttributes 移除屬性 * private isException 判斷是否特例 * private createAttributes 創(chuàng)建屬性 * private protect 特殊字符轉(zhuǎn)義 */ class HtmlAttributeFilter{ // class start private $_str = ''; // 源字符串 private $_allow = array(); // 允許保留的屬性 例如:array('id','class','title') private $_exception = array(); // 特例 例如:array('a'=>array('href','class'),'span'=>array('class')) private $_ignore = array(); // 忽略過濾的標(biāo)記 例如:array('span','img') /** 處理HTML,過濾不保留的屬性 * @param String $str 源字符串 * @return String */ public function strip($str){ $this->_str = $str; if(is_string($this->_str) && strlen($this->_str)>0){ // 判斷字符串 $this->_str = strtolower($this->_str); // 轉(zhuǎn)成小寫 $res = $this->findElements(); if(is_string($res)){ return $res; } $nodes = $this->findAttributes($res); $this->removeAttributes($nodes); } return $this->_str; } /** 設(shè)置允許的屬性 * @param Array $param */ public function setAllow($param=array()){ $this->_allow = $param; } /** 設(shè)置特例 * @param Array $param */ public function setException($param=array()){ $this->_exception = $param; } /** 設(shè)置忽略的標(biāo)記 * @param Array $param */ public function setIgnore($param=array()){ $this->_ignore = $param; } /** 搜尋需要處理的元素 */ private function findElements(){ $nodes = array(); preg_match_all("/<([^ !\/\>\n]+)([^>]*)>/i", $this->_str, $elements); foreach($elements[1] as $el_key => $element){ if($elements[2][$el_key]){ $literal = $elements[0][$el_key]; $element_name = $elements[1][$el_key]; $attributes = $elements[2][$el_key]; if(is_array($this->_ignore) && !in_array($element_name, $this->_ignore)){ $nodes[] = array('literal'=>$literal, 'name'=>$element_name, 'attributes'=>$attributes); } } } if(!$nodes[0]){ return $this->_str; }else{ return $nodes; } } /** 搜尋屬性 * @param Array $nodes 需要處理的元素 */ private function findAttributes($nodes){ foreach($nodes as &$node){ preg_match_all("/([^ =]+)\s*=\s*[\"|']{0,1}([^\"']*)[\"|']{0,1}/i", $node['attributes'], $attributes); if($attributes[1]){ foreach($attributes[1] as $att_key=>$att){ $literal = $attributes[0][$att_key]; $attribute_name = $attributes[1][$att_key]; $value = $attributes[2][$att_key]; $atts[] = array('literal'=>$literal, 'name'=>$attribute_name, 'value'=>$value); } }else{ $node['attributes'] = null; } $node['attributes'] = $atts; unset($atts); } return $nodes; } /** 移除屬性 * @param Array $nodes 需要處理的元素 */ private function removeAttributes($nodes){ foreach($nodes as $node){ $node_name = $node['name']; $new_attributes = ''; if(is_array($node['attributes'])){ foreach($node['attributes'] as $attribute){ if((is_array($this->_allow) && in_array($attribute['name'], $this->_allow)) || $this->isException($node_name, $attribute['name'], $this->_exception)){ $new_attributes = $this->createAttributes($new_attributes, $attribute['name'], $attribute['value']); } } } $replacement = ($new_attributes) ? "<$node_name $new_attributes>" : "<$node_name>"; $this->_str = preg_replace('/'.$this->protect($node['literal']).'/', $replacement, $this->_str); } } /** 判斷是否特例 * @param String $element_name 元素名 * @param String $attribute_name 屬性名 * @param Array $exceptions 允許的特例 * @return boolean */ private function isException($element_name, $attribute_name, $exceptions){ if(array_key_exists($element_name, $this->_exception)){ if(in_array($attribute_name, $this->_exception[$element_name])){ return true; } } return false; } /** 創(chuàng)建屬性 * @param String $new_attributes * @param String $name * @param String $value * @return String */ private function createAttributes($new_attributes, $name, $value){ if($new_attributes){ $new_attributes .= " "; } $new_attributes .= "$name=\"$value\""; return $new_attributes; } /** 特殊字符轉(zhuǎn)義 * @param String $str 源字符串 * @return String */ private function protect($str){ $conversions = array( "^" => "\^", "[" => "\[", "." => "\.", "$" => "\$", "{" => "\{", "*" => "\*", "(" => "\(", "\\" => "\\\\", "/" => "\/", "+" => "\+", ")" => "\)", "|" => "\|", "?" => "\?", "<" => "\<", ">" => "\>" ); return strtr($str, $conversions); } } // class end ?>

demo示例代碼如下:

?1234567891011121314151617181920212223 <?php require('HtmlAttributeFilter.class.php'); $str = '<div class="bd clearfix" id="index_hilite_ul"><ul class="list"><li><img src="" width="118" height="148"><div class="cover"><a class="text" href=" class="t g">want to know</strong><a href="/login.html" class="ppBtn"><strong class="text">YES</strong></a></div></li></ul></div>'; $obj = new HtmlAttributeFilter(); // 允許id屬性 $obj->setAllow(array('id')); $obj->setException(array( 'a' => array('href'), // a 標(biāo)簽允許有 href屬性特例 'ul' => array('class') // ul 標(biāo)簽允許有 class屬性特例 )); // img 標(biāo)簽忽略,不過濾任何屬性 $obj->setIgnore(array('img')); echo 'source str:<br>'; echo htmlspecialchars($str).'<br><br>'; echo 'filter str:<br>'; echo htmlspecialchars($obj->strip($str)); ?>

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機網(wǎng)站地址:php過濾html標(biāo)記屬性類用法實例
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2026上岸·考公考編培訓(xùn)報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
99国产精品久久久久久久久久| 欧美精品日韩| 蜜桃久久精品乱码一区二区| 一区视频在线看| 欧美韩日精品| 亚洲一区二区在线免费观看| 国产乱肥老妇国产一区二| 久久久综合网站| 99国产一区| 狠狠色狠色综合曰曰| 欧美激情国产日韩| 午夜欧美精品久久久久久久| 国内成人精品一区| 欧美日韩综合在线| 久久久国产精品一区二区三区| 亚洲精品人人| 激情六月婷婷综合| 在线观看成人一级片| 久久亚洲精品欧美| 在线一区亚洲| 亚洲成人原创| 国产伦精品一区二区三区四区免费| 久久久噜噜噜久久狠狠50岁| 亚洲深夜福利| 亚洲日韩欧美视频| 精品999久久久| 国产欧美日韩另类视频免费观看| 欧美国产一区二区在线观看| 午夜欧美不卡精品aaaaa| 日韩视频在线一区二区三区| 国产亚洲精品激情久久| 欧美日韩亚洲综合| 开元免费观看欧美电视剧网站| 在线亚洲+欧美+日本专区| 91久久视频| 亚洲国产精品第一区二区| 国产欧美一区二区三区久久 | 一本色道久久| 雨宫琴音一区二区在线| 国产亚洲成av人在线观看导航| 国产精品爱久久久久久久| 欧美另类videos死尸| 欧美二区在线| 欧美黄色精品| 欧美激情导航| 欧美日韩xxxxx| 影音先锋久久资源网| 国产欧美日韩免费看aⅴ视频| 欧美午夜精彩| 国产精品九九| 国产欧美 在线欧美| 国产欧美精品日韩区二区麻豆天美| 国产精品av免费在线观看| 欧美日韩人人澡狠狠躁视频| 欧美日韩一级大片网址| 亚洲人成在线影院| 日韩亚洲视频| 亚洲少妇诱惑| 欧美在线你懂的| 久久亚洲影院| 欧美激情视频在线播放| 欧美日韩另类在线| 国产精品mv在线观看| 国产精品免费区二区三区观看| 欧美日韩精品系列| 欧美亚洲成人网| 国产亚洲在线观看| 亚洲高清不卡| 一本大道久久a久久精二百| 一本色道久久综合亚洲精品婷婷| 亚洲小说区图片区| 国产视频精品网| 亚洲一区国产视频| 好看的av在线不卡观看| 亚洲香蕉视频| 久久精品国产免费| 亚洲欧美精品suv| 欧美精品一区二区三区视频| 极品日韩久久| 国产在线拍揄自揄视频不卡99 | 国产精品乱看| 亚洲一区综合| 黑人一区二区| 国产精品亚洲片夜色在线| 可以免费看不卡的av网站| 午夜精品福利一区二区三区av| 亚洲国语精品自产拍在线观看| 国产精品视频久久久| 欧美精品18| 欧美国产日韩一区二区| 久久美女性网| 久久亚洲精品一区| 欧美自拍偷拍午夜视频| 亚洲无吗在线| 亚洲线精品一区二区三区八戒| 91久久精品日日躁夜夜躁国产| 国产一区清纯| 国产日韩欧美二区| 国产美女精品一区二区三区| 欧美午夜电影网| 欧美人与性禽动交情品| 欧美精品性视频| 欧美日韩精品三区| 欧美亚一区二区| 欧美精品在线免费观看| 欧美精品一区二区三| 欧美激情一区二区三区在线视频| 欧美a一区二区| 欧美日韩第一页| 国产精品视频自拍| 国产综合一区二区| 亚洲欧洲另类国产综合| 一区二区三区久久久| 午夜一区二区三视频在线观看 | 伊人精品视频| 一区二区三区在线看| 亚洲欧洲精品一区| 亚洲免费av片| 亚洲在线一区二区三区| 欧美在线视频一区二区| 久久婷婷久久一区二区三区| 蜜臀久久99精品久久久久久9 | 国产综合自拍| 亚洲成色777777女色窝| 一区二区三区精品视频| 欧美在线播放高清精品| 欧美承认网站| 国产精品每日更新在线播放网址| 国产一区二区三区高清| 亚洲精品中文字幕女同| 性欧美videos另类喷潮| 欧美aaa级| 国产精品久久波多野结衣| 国产综合久久| 一二美女精品欧洲| 久久人人爽人人爽爽久久| 欧美日韩一区二区视频在线观看 | 久久精品国产清自在天天线| 老牛国产精品一区的观看方式| 欧美日韩精品欧美日韩精品 | 久热精品在线| 国产麻豆91精品| 夜夜嗨一区二区| 理论片一区二区在线| 性视频1819p久久| 欧美激情第10页| 激情五月综合色婷婷一区二区| 亚洲一区二区精品视频| 欧美成人在线免费观看| 国产欧美日韩伦理| 亚洲视频999| 欧美暴力喷水在线| 国内精品模特av私拍在线观看| 一区二区三区精品视频在线观看| 久久国产欧美精品| 国产精品爽爽爽| 亚洲色图制服丝袜| 欧美精品一区二区视频| 亚洲国产91色在线| 久久久精品国产免费观看同学 | 欧美在线日韩| 国产精品久久久久久久久久免费 | 美女成人午夜| 国产一区二区日韩| 久久福利精品| 国产午夜精品视频免费不卡69堂| 欧美夫妇交换俱乐部在线观看| 国产日韩在线播放| 亚洲免费一在线| 国产精品久久久久久久久果冻传媒 | 国产精品三级视频| 99视频日韩| 欧美日本国产精品| 亚洲欧洲精品一区二区三区| 久久综合免费视频影院| 黑人一区二区三区四区五区| 欧美一区影院| 国产亚洲综合精品| 久久久国产一区二区三区| 国内精品久久久久伊人av| 亚洲欧美一区在线| 国产免费观看久久黄| 性做久久久久久免费观看欧美| 国产色综合网| 另类激情亚洲| 9色国产精品| 国产精品久久久久9999高清| 午夜精品视频一区| 国内精品国产成人| 欧美黄网免费在线观看| 亚洲私人黄色宅男| 国产欧美日韩不卡| 免费av成人在线| 中文av一区二区| 国产丝袜一区二区三区| 卡通动漫国产精品| 亚洲图片欧美日产| 国产日韩亚洲欧美精品| 女同性一区二区三区人了人一| 欧美一区国产一区|