嗨,我非常擅长编程。 我不知道如何写一个PHP规则表达式来添加href =“和之后的一些文本之间的东西 怎么做这个
<a class="aaa" href="/some/file.html">
看起来像
<a class="aaa" href="http://www.example.com/some/file.html">
必须将链接与“aaa”类匹配。
有人能帮助我吗?
答案 0 :(得分:2)
You better don't even start trying to do this with regular expressions.
你应该使用DOM解析器来完成这样的任务。 This one例如让您的生活变得轻松。
$html = new simple_html_dom();
$html->load($input);
foreach($html->find('a[class=aaa]') as $link)
$link->href = "http://www.example.com".$link->href;
$result = $html->save();
find
可让您非常好地查询DOM。参数为tagtype[attributeName=attributeValue]
,其中方括号是可选的过滤器。然后,您只需迭代此函数找到的每个链接,并在您的域前添加href
属性。
如果由于某种原因无法使用第三方库,PHP会附带内置DOM module。代码不会那么短而优雅,但仍然非常希望能够提出一个强大的正则表达式。
答案 1 :(得分:0)
你可以这样做:
$string = '<a class="aaa" href="/some/file.html">';
$pattern = '~class="aaa" href="(.*)"~isU';
preg_match($pattern, $string, $matches);
$string = str_replace($matches[1],"http://www.example.com".$matches[1],$string);
echo $string;
编辑匹配class =“aaa”,但如果你做的很多,我也会推荐m.buettners方式。