Preg_Replace Change URL


Preg_Replace Change URL

我正试图从我的另一个网站上获取内容,该网站运行良好,除了所有链接都不正确之外。

    include_once('../simple_html_dom.php');

    $page = file_get_html('http://www.website.com');

$ret = $page->find('div[id=header]');

echo $ret[0];

是否有完整的链接而不是所有显示链接的链接?使用preg替换。

   $ret[0] = preg_replace('@(http://(['w-.]+)+(:'d+)?(/(['w/_.]*('?'S+)?)?)?)@', 
       '<a href="$1">http://fullwebsitellink.com$1</a>', $ret[0]);

我想会是上面的样子,但我不明白?

感谢

你的问题并不能真正解释链接的"错误"之处,但我猜你有这样的问题:

<div id="header"><a href="/">Home</a> | <a href="/sitemap">Sitemap</a></div>

你想把它嵌入另一个网站,在那里这些链接需要完全符合域名,比如:

<div id="header"><a href="http://example.com/">Home</a> | <a href="http://example.com/sitemap">Sitemap</a></div>

假设是这种情况,您想要的替换非常简单,甚至不需要regex:查找以"/"开头的所有href属性,然后添加域部分(我将使用http://example.com")到他们开始让他们变得绝对:

$scraped_html = str_replace('href="/', 'href="http://example.com/', $scraped_html);