除了所有链接都不正确之外,我正试图从我网站的另一个网站抓取内容正常工作。
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]);
我想它会像上面那样,但我不明白?
由于
答案 0 :(得分:3)
你的问题并没有真正解释链接的“不正确”,但我猜你有类似的东西:
<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>
假设是这种情况,你想要的替换是如此简单,你甚至不需要正则表达式:找到所有以“/”开头的href属性,并添加域部分(我将使用“http:// example” .com“)开始让它们成为绝对的:
$scraped_html = str_replace('href="/', 'href="http://example.com/', $scraped_html);