很多時候我們在網頁開發中需要對標簽進行修改,比如添加屬性,刪除屬性等。在使用php進行網頁開發時,修改標簽也是非常方便的。下面就來介紹php如何修改標簽。
一、使用DOMDocument類修改標簽
DOMDocument是php中的一個非常強大的類,可以用來解析xml和html文檔,并且還可以對文檔進行修改。我們可以使用DOMDocument類中的方法來獲取指定標簽,然后對其進行修改。下面是一個修改a標簽href屬性的例子。$doc = new DOMDocument(); $doc->loadHTML($html); // $html是要修改的文檔 $anchors = $doc->getElementsByTagName('a'); foreach ($anchors as $anchor) { $href = $anchor->getAttribute('href'); if ($href == 'https://www.baidu.com/') { $anchor->setAttribute('href','https://www.google.com/'); } } echo $doc->saveHTML();上面的代碼中,我們先使用DOMDocument類加載要修改的html文檔,然后通過getElementsByTagName方法獲取所有的a標簽。foreach循環遍歷所有的a標簽,并且判斷如果href屬性值等于https://www.baidu.com/,則將其修改為https://www.google.com/,修改完成后,最后再使用saveHTML方法進行保存。
二、使用正則表達式修改標簽
除了使用DOMDocument類,我們還可以使用正則表達式來修改標簽。下面是一個例子,將所有的img標簽的高度和寬度屬性值都修改為100。$html = preg_replace('/<(img).*?(width=["\'].*?["\']).*?(height=["\'].*?["\']).*?>/i', '<$1 width="100" height="100">', $html); echo $html;上面的代碼中,我們使用preg_replace函數,通過正則表達式將所有的img標簽匹配出來,然后將其寬度和高度屬性值都修改為100
三、使用SimpleHTMLDOM類修改標簽
SimpleHTMLDOM是php中一個非常方便的類庫,可以用來解析html文檔,并且可以通過類似jQuery的方式來獲取和操作標簽。下面是一個修改所有img標簽的src屬性值為絕對路徑的例子。include 'simple_html_dom.php'; $html = file_get_html('https://www.baidu.com/'); foreach($html->find('img') as $element){ $org_src = $element->src; if(!preg_match('/^https?:\/\//',$org_src)){ $url = 'https://www.baidu.com'; if(substr($org_src,0,1) == '/'){ $url .= $org_src; }else{ $url .= '/'.$org_src; } $element->src = $url; } } echo $html;上面的代碼中,我們使用SimpleHTMLDOM類庫先加載要修改的html文檔,然后通過foreach循環遍歷所有的img標簽,判斷src屬性值是否為相對路徑,如果是,就將其轉換為絕對路徑。
總結
以上就是介紹php中如何修改標簽的三種方式。對于多數情況下,使用DOMDocument和SimpleHTMLDOM類就已經足夠了,可以按照需求選擇使用。至于正則表達式,雖然能夠完成很多復雜的匹配和替換,但是使用不當會導致代碼難以維護和不可擴展。因此,在實際開發中,需要根據實際情況,謹慎使用。上一篇css文字設置左對齊
下一篇php 使用類