嗨,我对编程很陌生。我不知道如何编写一个 php regulat 表达式来在 href=" 和之后的一些文本之间添加一些东西如何做到这一点
<a class="aaa" href="/some/file.html">
看起来像
<a class="aaa" href="http://www.example.com/some/file.html">
有必要将链接与“aaa”类匹配。
有谁能够帮我 ?
嗨,我对编程很陌生。我不知道如何编写一个 php regulat 表达式来在 href=" 和之后的一些文本之间添加一些东西如何做到这一点
<a class="aaa" href="/some/file.html">
看起来像
<a class="aaa" href="http://www.example.com/some/file.html">
有必要将链接与“aaa”类匹配。
有谁能够帮我 ?
对于这样的任务,您应该使用 DOM 解析器。例如,这使您的生活变得非常轻松。
$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 模块。代码不会那么短和优雅,但它仍然比尝试提出一个健壮的正则表达式更可取。
你可以这样做:
$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 方式。