我有一个包含锚标签的变量,我需要在<a>
标签上str_replace但标签的内容会发生变化。我假设可以使用正则表达式吗?
这是链接的一个例子。
<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>
我做了几次尝试,但我不确定从哪里开始,因为有特殊字符,数字,字母等。
如果有人能回答,甚至可能指出哪些部分做了什么,那就太棒了!
谢谢:)
答案 0 :(得分:1)
你可以尝试一些简单的事情:
<a href="[^"]+" class="fl">
这应该与具有href和class属性的锚标记匹配,其中href属性必须具有值并且可以包含除双引号之外的任何内容。如果您不关心href是否为空,那么Avinash Raj的评论也会起作用:
<a href="[^"]*" class="fl">
如果您需要比此更复杂的内容,请添加您想要排除的更多特定要求或误报,以及要包含的误报。
答案 1 :(得分:0)
使用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();