婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > php使用自帶dom擴(kuò)展進(jìn)行元素匹配的原理解析

php使用自帶dom擴(kuò)展進(jìn)行元素匹配的原理解析

熱門標(biāo)簽:如何在世界地圖標(biāo)注 菏澤語音外呼系統(tǒng)運(yùn)營商 廈門400電話辦理選易號(hào)網(wǎng) 天客通地圖標(biāo)注 地圖標(biāo)注符號(hào)樣式有 臨沂crm外呼系統(tǒng)平臺(tái) 梧州市機(jī)器人外呼系統(tǒng)怎么樣 公司外呼系統(tǒng)中心 電子地圖標(biāo)注怎么修改

DOMDocument

php提供了非常好用的解析html和xml文檔的擴(kuò)展庫DOM,使用這個(gè)庫可以非常高效的進(jìn)行html和xml文檔的解析,它的原理就是通過尋找首尾匹配對(duì)來進(jìn)行文檔的解析。

從上面的分析可以看出,如果首位不匹配,可能就會(huì)導(dǎo)致一些錯(cuò)誤的出現(xiàn),因此,這個(gè)時(shí)候我們需要設(shè)置

libxml_use_internal_errors(true);

來進(jìn)行錯(cuò)誤的屏蔽,讓它可以解析整個(gè)文檔。

解析html基本用法

$dom = new \DOMDocument;
$content = htmlspecialchars_decode($content);
libxml_use_internal_errors(true);
$content = mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8');
$dom->loadHTML($content);

$content是要解析的html字符串,其中我們對(duì)它進(jìn)行了轉(zhuǎn)義,因?yàn)榭赡芎袑?shí)體集,然后我們有進(jìn)行了編碼的轉(zhuǎn)換,因?yàn)榭赡芪臋n不是utf-8格式的,會(huì)導(dǎo)致日文,法文等文字亂碼。

獲取元素

$a = $dom->getElementsByTagName('a');
$p = $dom->getElementsByTagName('p');

遍歷元素

$elements = $dom->getElementsByTagName('a');
foreach ($elements as $element) {
  $element->textContent = '替換成其它的文字';
}

通過上面的循環(huán),可以將全部a標(biāo)簽的文字替換掉。

元素嵌套

有些時(shí)候,html會(huì)嵌套很多層,比如

div>
p>
a href="xxx" rel="external nofollow" >我是文字/a>
/p>
p>
內(nèi)容替換
/p>
/div>

如果我們想要對(duì)p標(biāo)簽文字進(jìn)行替換的化,并且不想要替換含有子元素的內(nèi)容,就是這里的a標(biāo)簽不想替換,下面的語句不能夠解決我們的問題:

$elements = $dom->getElementsByTagName('p');
foreach ($elements as $element) {
  if($element->hasChildNodes()){
    $element->textContent = 'p標(biāo)簽內(nèi)容替換';
  }
}

上面的代會(huì)將a標(biāo)簽的內(nèi)容也替換掉,這不是我們想要的結(jié)果,因?yàn)閔asChildNodes()這個(gè)函數(shù)表示的含有內(nèi)容,無論它是標(biāo)簽還是文字,它都是返回true的,除非它是空標(biāo)簽,例如

它才會(huì)返回false.

所以我們需要自己封裝一個(gè)函數(shù)進(jìn)行檢查是否含有嵌套標(biāo)簽。

function hasChild($element, $tags)
{
  foreach($tags as $v){
  $elements = $element->getElementsByTagName($v);

  if($elements->length){
  return true;
  }

  }
  return false;
}
$tags = array('title','h1','h2','h3','h4','h5','a','p','dd','img');  

$elements = $dom->getElementsByTagName('p');
foreach ($elements as $element) {
  if(hasChild($element, $tags)){
    $element->textContent = 'p標(biāo)簽內(nèi)容替換';
  }
}

通過我們自己封裝的函數(shù),就可以判斷出$dom的node節(jié)點(diǎn)是否含有子標(biāo)簽。

總結(jié)

到此這篇關(guān)于php使用自帶dom擴(kuò)展進(jìn)行元素匹配的文章就介紹到這了,更多相關(guān)php元素匹配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • PHP代碼加密和擴(kuò)展解密實(shí)戰(zhàn)
  • Thinkphp使用Zxing擴(kuò)展庫解析二維碼內(nèi)容圖文講解
  • PHP安裝擴(kuò)展mcrypt以及相關(guān)依賴項(xiàng)深入講解
  • win10下 php安裝seaslog擴(kuò)展的詳細(xì)步驟
  • PHP擴(kuò)展安裝方法步驟解析
  • php使用event擴(kuò)展的io復(fù)用測(cè)試的示例
  • 安裝PHP擴(kuò)展時(shí)解壓官方 tgz 文件后沒有configure文件無法進(jìn)行配置編譯的問題
  • PHP 擴(kuò)展Memcached命令用法實(shí)例總結(jié)
  • Thinkphp 框架配置操作之動(dòng)態(tài)配置、擴(kuò)展配置及批量配置實(shí)例分析
  • docker 安裝 php-fpm 服務(wù) / 擴(kuò)展 / 配置的示例教程詳解
  • 如何動(dòng)態(tài)查看及加載PHP擴(kuò)展

標(biāo)簽:綿陽 白城 雞西 瀘州 迪慶 黃石 貴陽 郴州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php使用自帶dom擴(kuò)展進(jìn)行元素匹配的原理解析》,本文關(guān)鍵詞  php,使用,自帶,dom,擴(kuò)展,進(jìn)行,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php使用自帶dom擴(kuò)展進(jìn)行元素匹配的原理解析》相關(guān)的同類信息!
  • 本頁收集關(guān)于php使用自帶dom擴(kuò)展進(jìn)行元素匹配的原理解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲日本va在线观看| 久久精品在这里| 久久精品视频一区二区三区| 天天亚洲美女在线视频| 欧美精品vⅰdeose4hd| 视频一区视频二区中文| 日韩欧美精品在线| 国产盗摄精品一区二区三区在线| 亚洲精品一区二区三区影院| 国产激情精品久久久第一区二区 | 久久久久国色av免费看影院| 国产不卡在线播放| 亚洲天天做日日做天天谢日日欢 | 日韩精品一区二区三区视频播放 | 精品国产亚洲一区二区三区在线观看| 老司机精品视频线观看86| 国产亚洲午夜高清国产拍精品| 国产成人在线看| 亚洲小说欧美激情另类| 精品国产伦一区二区三区免费| av电影在线观看不卡| 性做久久久久久免费观看欧美| 精品成人佐山爱一区二区| av中文字幕一区| 美女网站一区二区| 一区二区三区四区不卡视频 | 免费一级片91| 国产日韩欧美激情| 欧美日韩一区二区在线观看| 国产精品香蕉一区二区三区| 午夜精品久久久久影视| 国产色综合久久| 欧美电影在哪看比较好| 91在线视频免费观看| 国产在线看一区| 一区二区三区在线视频观看58| 欧美xxxxx裸体时装秀| 一本大道av伊人久久综合| 狠狠色丁香久久婷婷综合丁香| 亚洲综合视频在线| 久久久国际精品| 日韩久久久久久| 91成人国产精品| 国产91对白在线观看九色| 欧美aa在线视频| 图片区小说区区亚洲影院| 国产精品麻豆欧美日韩ww| 精品国产亚洲一区二区三区在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 色婷婷亚洲综合| 国产精品一区二区三区网站| 亚洲韩国精品一区| 亚洲欧洲www| 国产精品入口麻豆原神| 精品国产免费一区二区三区香蕉 | 91欧美一区二区| 国产成人亚洲综合a∨猫咪| 久久99精品久久久久婷婷| 视频一区在线视频| 亚洲chinese男男1069| 亚洲女人小视频在线观看| 国产日韩欧美精品在线| 久久久久九九视频| 国产午夜精品一区二区三区嫩草| 日韩亚洲欧美高清| 欧美精选一区二区| 欧美日韩国产大片| 欧美视频三区在线播放| 欧美在线观看你懂的| 一本大道久久a久久综合婷婷| 92国产精品观看| 91女人视频在线观看| 日本道免费精品一区二区三区| 99国内精品久久| 欧美在线视频不卡| 91精品午夜视频| 久久综合给合久久狠狠狠97色69| 久久一区二区三区国产精品| 久久久久久电影| 亚洲视频每日更新| 亚洲国产综合在线| 另类小说图片综合网| 国产一区二区三区日韩| 成人app软件下载大全免费| 在线免费观看日韩欧美| 欧美日韩国产高清一区二区| 欧美96一区二区免费视频| 国产综合色精品一区二区三区| 国产一区二区在线影院| eeuss鲁一区二区三区| 欧美日韩一区高清| 久久精品一区二区三区四区| 亚洲欧美另类久久久精品2019| 五月天视频一区| 国产精品99久久久久久久vr| 91浏览器打开| 欧美成人vps| 国产精品大尺度| 日韩精品电影在线| 成人激情文学综合网| 在线播放国产精品二区一二区四区| 精品成人在线观看| 亚洲久草在线视频| 日本不卡一二三| 91丨九色丨国产丨porny| 欧美一区二区人人喊爽| 国产精品黄色在线观看| 日韩精品乱码av一区二区| 成人免费精品视频| 日韩一区二区三区电影在线观看 | 狠狠久久亚洲欧美| 色美美综合视频| 国产欧美一区二区精品婷婷| 亚洲大片免费看| 国产成人精品免费看| 国产精品色噜噜| 麻豆极品一区二区三区| 欧美综合在线视频| 久久久99免费| 美脚の诱脚舐め脚责91| 欧美视频一区二区三区| 亚洲欧洲色图综合| 激情久久久久久久久久久久久久久久| 色综合久久综合网| 亚洲国产精品v| 精品影视av免费| 在线成人高清不卡| 一区二区三区毛片| 91麻豆视频网站| 中文字幕一区二区三区在线不卡| 狠狠色狠狠色综合| 精品电影一区二区三区| 奇米精品一区二区三区四区| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 国产欧美日韩不卡免费| 精品一区二区三区欧美| 91精品一区二区三区在线观看| 亚洲精品综合在线| 91色综合久久久久婷婷| 国产精品久久久久久妇女6080| 激情另类小说区图片区视频区| 91精品福利在线一区二区三区| 视频一区二区三区入口| 在线影视一区二区三区| 亚洲精品成人悠悠色影视| 91麻豆国产香蕉久久精品| 亚洲精品国产视频| 国产98色在线|日韩| 国产精品私人影院| 99久久精品国产观看| 亚洲视频一二三| 欧美视频在线一区| 日本一道高清亚洲日美韩| 91精品一区二区三区在线观看| 日韩不卡免费视频| 精品国产一区二区三区久久影院| 国产在线精品国自产拍免费| 欧美极品xxx| 欧美综合亚洲图片综合区| 天使萌一区二区三区免费观看| 在线播放亚洲一区| 国产专区欧美精品| 亚洲欧洲韩国日本视频| 91黄色在线观看| 麻豆国产91在线播放| 国产欧美久久久精品影院| 99精品国产热久久91蜜凸| 天天射综合影视| 久久伊99综合婷婷久久伊| 91在线码无精品| 欧美96一区二区免费视频| 国产精品家庭影院| 在线成人av影院| 不卡一区二区三区四区| 日韩**一区毛片| 久久久久免费观看| 日本丰满少妇一区二区三区| 美女被吸乳得到大胸91| 国产精品每日更新在线播放网址 | 欧美激情综合五月色丁香| 日本精品视频一区二区| 麻豆视频一区二区| 中文字幕日韩av资源站| 国产在线播精品第三| 亚洲精品欧美激情| www成人在线观看| 欧美性高清videossexo| 国产精品888| 日韩福利视频导航| 亚洲男女毛片无遮挡| 久久免费电影网| 欧美日韩日本视频| 亚洲人午夜精品天堂一二香蕉| 欧美成人女星排名| 欧美日韩一级片网站| 丁香五精品蜜臀久久久久99网站| 视频在线观看一区二区三区| 亚洲免费在线电影| 国产欧美精品一区aⅴ影院| 2021久久国产精品不只是精品|