我有一个包含锚标记的变量,我需要将其str_replace放在<a>
标记上,但标记的内容会更改。我假设regex可以用于此?
这是链接的一个示例。
<a href="/url?q=http://www.fandango.com/redirect.aspx%3Ftid%3DAAPOS%26tmid%3D136675%26date%3D2014-10-15%2B14:20%26a%3D11584%26source%3Dgoogle&sa=X&oi=moviesf&ii=0&usg=AFQjCNG2oI9LFx-CeZ61PNCnniNnD1XyAQ" class="fl">
我需要一个表达式来表示<a href="{expression here}" class=fl>
我做了一些尝试,但不确定从哪里开始,因为有特殊的字符、数字、字母等。
如果有人能回答这个问题,甚至可能指出哪些部分起什么作用,那将是太棒了!
感谢:)
您可以尝试以下简单的方法:
<a href="[^"]+" class="fl">
它应该按照href和class属性的顺序匹配锚标记,其中href属性必须有一个值,并且可以包含除双引号之外的任何内容。如果你不在乎href是否为空,那么Avinash Raj的评论也会起作用:
<a href="[^"]*" class="fl">
如果你需要比这更复杂的东西,添加更具体的要求或你想排除的假阳性,你想包括的假阴性。
使用DOMDocument:
$dom = new DOMDocument();
@$dom->loadHTML($yourhtml);
$linkNodes = $dom->getElementsByTagName('a');
foreach ($linkNodes as $linkNode) {
if ($linkNode->getAttribute('class') == 'fl')
$linkNode->setAttribute('href', $whateveryouwant);
}
$yourhtml = $dom->saveHTML();