1

<a>タグからすべての属性を削除するにはどうすればよいhref="/index.php..."ですか?それにカスタムクラスを追加しますか?

したがって、この:

<a href="/index.php?option=com_virtuemart&view=cart&Itemid=105&lang=en" style="float:right;">content</a>

になる:

<a href="index.php?option=com_virtuemart&view=cart&Itemid=105&lang=en" class="custom">content</a>

preg_replaceを管理して動作させることはできません: `

<?php
    $text = '<a href="index.php?option=com_virtuemart&view=cart&Itemid=105&lang=en" class="custom">content</a>';
    echo preg_replace("/<a([a-z][a-z0-9]*)(?:[^>]*(\shref=['\"][^'\"]['\"]))?>/i", '<$1$2$3>', $text);
?>
4

2 に答える 2

2

DOMDocument優れていますが、正規表現を使用します

preg_replace("/<a [^>]*?(href=[^ >]+)[^>]*>/i", '<a $1 class="custom">', $text);

属性にスペースがhrefなく>、属性がないと想定します。

于 2013-03-03T19:19:10.333 に答える
1

あなたが使用することができますDomDocument

libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTML('<a href="/index.php?option=com_virtuemart&view=cart&Itemid=105&lang=en" style="float:right;">content</a>');
$items = $doc->getElementsByTagName('a');
$href = $items->item(0)->getAttribute('href');
$value = $items->item(0)->nodeValue;
libxml_clear_errors();
echo '<a href="'.$href.'" class="custom">'.$value.'</a>';
于 2013-03-03T19:04:35.340 に答える