用Dom文档PHP替换元素

用Dom文档PHP替换元素,php,dom,domdocument,Php,Dom,Domdocument,我加载了一个包含PHP Dom文档的html页面: $doc = new DOMDocument(); @$doc->loadHTMLFile($url); 我在我的页面中搜索所有a元素,如果他们意识到我的状况,我需要替换,例如,我的链接很漂亮 这里是我的循环: $liens = $div->getElementsByTagName('a'); foreach($liens as $lien){ if($lien->hasAttribute('href')){

我加载了一个包含PHP Dom文档的html页面:

$doc = new DOMDocument();
@$doc->loadHTMLFile($url);
我在我的页面中搜索所有a元素,如果他们意识到我的状况,我需要替换,例如,我的链接很漂亮

这里是我的循环:

$liens = $div->getElementsByTagName('a');
foreach($liens as $lien){
    if($lien->hasAttribute('href')){
        if (preg_match("/metz2/i", $lien->getAttribute('href'))) {
        //HERE I NEED TO REPLACE </a>           
        }
        $cpt++;
    }
}

你有什么想法吗?建议?谢谢:

每次我需要用PHP管理DOM时,我都会使用一个名为PHP Simple HTLM DOM parser的框架

它很容易使用,类似这样的东西可能适合您:

// Create DOM from URL or file
$html = file_get_html('http://www.page.com/');

// Find all links 
foreach($html->find('a') as $element) {
    //Do your custom logic here if you need it, for example this extracts the inner contents of the a-tag, and puts it freely.
    $inner = $element->innertext;
    $element->outertext($inner);
}

//To echo modified html again:
echo $html;
也可以通过以下方式完成:

$sText = '<a href="asdasdasd">Stackoverflow</a>';

$sText = preg_replace( '/<a.*>(.*)<\/a>/',  '$1', $sText );

echo $sText;