第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 dom (php) 解析 img 和 html 代碼

使用 dom (php) 解析 img 和 html 代碼

PHP
回首憶惘然 2021-12-03 15:38:07
我有一個解析 img 和文本的代碼。運行php文件中的代碼。它只是顯示 img src、abc、img src、dfe。而且我的代碼不規(guī)則。img 標簽可能帶有鏈接。我想解析 img 和下一個html。像這樣:Array(    [0] => Array        (            [src] => http://www.whatever.com            [text] =>  abc    <br>    <h3>title</h3>    <div class="content">content <a href="link">my link</a></div>        )    [1] => Array        (            [src] => http://goingnowhere.com            [text] =>  def    <br>    <h3>title 2</h3>    <div class="content">content <a href="link">my link</a>    bla bla bla    </div>        ))我怎樣才能做到這一點?我目前的代碼:<?php $sample_html = '<img src="http://www.whatever.com" alt="" />abc<br><h3>title</h3><div class="content">content <a href="link">my link</a></div><img src="http://goingnowhere.com" alt="">def<br><h3>title 2</h3><div class="content">content <a href="link">my link</a>bla bla bla</div>';$dom = new DOMDocument();$dom->loadHTML($sample_html);$data = array();$images = $dom->getElementsByTagName('img');foreach ($images as $image) {$data[] = array('src' => $image->getAttribute('src'),'text' => trim($image->nextSibling->textContent),);}echo '<pre>';print_r($data); ?>
查看完整描述

1 回答

?
嗶嗶one

TA貢獻1854條經(jīng)驗 獲得超8個贊

使用 xpath 遍歷所有節(jié)點并使用兩個 img 標簽檢索數(shù)據(jù)。


<?php $sample_html = '

<img src="http://www.whatever.com" alt="" />

abc

<br>

<h3>title</h3>

<div class="content">content <a href="link">my link</a></div>

<img src="http://goingnowhere.com" alt="">

def

<br>

<h3>title 2</h3>

<div class="content">content <a href="link">my link</a>


bla bla bla


</div>

';


$dom = new DOMDocument();

@$dom->loadHtml($sample_html);


$xpath = new DOMXPath($dom);


$snippet = '';

$arr = array();

$count = $xpath->query('//img')->length;

//loop through all img tags

for($i=0;$i<$count;$i++){


    $node = $xpath->query('//img')->item($i);

    $img_src = $node->getAttribute('src');//first image src


    while ($node = $node->nextSibling) {


      if (get_class($node) != 'DOMElement') {

        continue;

      }


      if ($node->tagName  == 'img') {

        $snippet .= $dom->saveXML($node);

        $arr[] = array(

            'src'=>$img_src,

            'content'=>$snippet

        );

        $img_src = $node->getAttribute('src');//last img src

        $snippet = '';

        break;

      }

      $snippet .= $dom->saveXML($node);


    }

}

//fill last img data

$arr[] = array('src'=>$img_src,'content'=>$snippet);


查看完整回答
反對 回復(fù) 2021-12-03
  • 1 回答
  • 0 關(guān)注
  • 220 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號