Php Preg_替换更改URL

Php Preg_替换更改URL,php,regex,preg-replace,Php,Regex,Preg Replace,我试图从我的另一个网站抓取内容,除了所有的链接都不正确外,这个网站运行良好 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

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

    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]);
$ret[0]=preg\u replace('@(http:/([\w-.]+)+(:\d+)(/([\w/.]*(\?\S+)))@,
“$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>

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

<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>

我也不明白。您还应该使用
DomDocuemnt
而不是简单的html dom IMHO。Url服务在NetURL2中可用,其他一切都是使用XPATH完成的,比使用正则表达式要好得多。你也可以尝试使用NetURL2,并使用中间形式。我需要在im上的项目中使用正则表达式,但我不理解它。我试图从另一个站点提取数据,但所有URL都错误。请使用
->find('a')
替换所有链接,不要使用正则表达式。它一定会错过。。。几乎所有的东西。在任何项目中都不需要使用正则表达式。您可以编写自己的函数并调用它。它甚至可以让您随着时间的推移改进您的方法,而无需更改软件的其余部分。否则学习正则表达式,这不是正则表达式教程网站。但这一个很好,它有一个极好的
loadHTML
方法,所以在XML解析器旁边还有一个HTML解析器。顺便说一句,这是一个非常好的例子。这就是为什么没有人再需要简单的HTMLDOM了,而且这个库不再维护了,因为它有bug等等。所以实际上只是一个提示:)。如果您错过了CSS选择器,您可能需要了解一些Xpath。另外,我觉得有一个CSS选择器可以作为一个方便的附加库使用。我也不明白。您还应该使用
DomDocuemnt
而不是简单的html dom IMHO。Url服务在NetURL2中可用,其他一切都是使用XPATH完成的,比使用正则表达式要好得多。你也可以尝试使用NetURL2,并使用中间形式。我需要在im上的项目中使用正则表达式,但我不理解它。我试图从另一个站点提取数据,但所有URL都错误。请使用
->find('a')
替换所有链接,不要使用正则表达式。它一定会错过。。。几乎所有的东西。在任何项目中都不需要使用正则表达式。您可以编写自己的函数并调用它。它甚至可以让您随着时间的推移改进您的方法,而无需更改软件的其余部分。否则学习正则表达式,这不是正则表达式教程网站。但这一个很好,它有一个极好的
loadHTML
方法,所以在XML解析器旁边还有一个HTML解析器。顺便说一句,这是一个非常好的例子。这就是为什么没有人再需要简单的HTMLDOM了,而且这个库不再维护了,因为它有bug等等。所以实际上只是一个提示:)。如果您错过了CSS选择器,您可能需要了解一些Xpath。我也有一种感觉,有一个CSS选择器可以作为一个方便的附加库使用!如果我能和你握手,我会的。非常感谢您,先生,您是上帝!如果我能和你握手,我会的。非常感谢你。