提取所有网址Href php

时间:2011-03-10 17:50:25

标签: php dom href

如何将这些链接转换为sha1?然后返回已经使用sha1

应用的html

$dom = new DOMDocument;
$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
foreach ($links as $link) {
    if (preg_match("/globo.com/i", $link->getAttribute('href'))) {
        $v = $link->getAttribute('href');
        $str = str_replace($v,'http://www.globo.com/?id='.sha1($v),$v);
        $str2 = str_replace($v,$str,$html);
        echo $str2."
"; } }

1 个答案:

答案 0 :(得分:0)

您可以将href放回元素中:

$dom = new DOMDocument;
$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');

foreach ($links as $link) {
    $href = $link->getAttribute('href');
    if (preg_match("/globo.com/i", $href)) {
        $newHref = 'http://www.globo.com/?id=' . sha1($v);
        $link->setAttribute('href', $newHref);
    }
}

然后使用saveHTML()导出完成的HTML。

echo $dom->saveHTML();