Php 给定2个URL,如何判断它们实际上是指同一个网站或网页?

Php 给定2个URL,如何判断它们实际上是指同一个网站或网页?,php,regex,url,Php,Regex,Url,我正在使用Php 给定2个这样的URL 如何判断它们实际上是一样的 也考虑不同的是HTTPS,类似和的情况。 请告知。我发现在使用正则表达式时会遇到困难,因为有时它对区分(例如,soccernet示例)不是很好 我乐于接受各种可能的好主意,而不仅仅局限于正则表达式 编辑:感谢下面的所有评论和答案。一个获得一定程度确定性的好主意怎么样?我应该寻找哪些因素?如何以最有效的方式进行呢?我真的认为这是不可能的,考虑到你的soccernet示例,没有实际比较你从每个页面获得的输出。我真的认为这是不可能的,

我正在使用Php

给定2个这样的URL

如何判断它们实际上是一样的

也考虑不同的是HTTPS,类似和

的情况。 请告知。我发现在使用正则表达式时会遇到困难,因为有时它对区分(例如,soccernet示例)不是很好

我乐于接受各种可能的好主意,而不仅仅局限于正则表达式


编辑:感谢下面的所有评论和答案。一个获得一定程度确定性的好主意怎么样?我应该寻找哪些因素?如何以最有效的方式进行呢?

我真的认为这是不可能的,考虑到你的soccernet示例,没有实际比较你从每个页面获得的输出。

我真的认为这是不可能的,考虑到你的soccernet示例,没有实际比较每页的输出。

在一般情况下,您无法确定这一点。如果server1和server2都映射到同一IP地址,则可以是同一页;事实上,如果它们都映射到同一个服务器场


事实上,即使它们是同一个页面,它们也可能有完全不同的内容,如果页面根据用于请求它的URL呈现不同。

在一般情况下,您无法确定这一点。如果server1和server2都映射到同一IP地址,则可以是同一页;事实上,如果它们都映射到同一个服务器场


事实上,即使它们是同一个页面,它们也可能有完全不同的内容,如果页面根据用于请求的URL呈现不同的内容。

唯一的方法是下载每个页面并进行比较


实际上,这应该不会太麻烦,因为您的平均HTML文件相当小(通常最大不超过100KB)。您不需要下载所有引用的文件。

唯一的方法是下载每页并比较它们


实际上,这应该不会太麻烦,因为您的平均HTML文件相当小(通常最大不超过100KB)。您不需要下载所有引用的文件。

可能您可以确定它们是相同的,您可以在发出HEAD请求后比较文件大小,尽管这并不能完全满足您的需要

执行HEAD请求后,如果文件大小相同,则可以获得要比较的内容

以下是有关执行HEAD请求的一些信息:


可能您可以确定它们是相同的,您可以在发出HEAD请求后比较文件大小,尽管这并不能完全满足您的需要

执行HEAD请求后,如果文件大小相同,则可以获得要比较的内容

以下是有关执行HEAD请求的一些信息:


soccernet.com和soccernet.espn.go.com是完全不同的URL。当程序需要HTTP访问soccernet.com以注意到它重定向到soccernet.espn.go.com时,这是一个非常特殊的情况。对于您的案例是否可行?

soccernet.com和soccernet.espn.go.com是完全不同的URL。当程序需要HTTP访问soccernet.com以注意到它重定向到soccernet.espn.go.com时,这是一个非常特殊的情况。对于您的情况是否可行?

您可以执行HTTP HEAD请求,以确定页面是否被重定向到其他位置。您可以比较实际的响应文件,但对于像ESPN这样的网站,由于跟踪javascript和广告,即使是相同的url也很少使用相同的内容进行响应

使用get_headers()函数并递归地遵循“Location”键。所以“soccernet.com”重定向到“”,而“”重定向到“”。忽略查询字符串,此url和您拥有的其他url是等效的

print_r(get_headers('http://soccernet.espn.go.com/archive/'),1)

您可以执行HTTP HEAD请求以确定页面是否被重定向到其他位置。您可以比较实际的响应文件,但对于像ESPN这样的网站,由于跟踪javascript和广告,即使是相同的url也很少使用相同的内容进行响应

使用get_headers()函数并递归地遵循“Location”键。所以“soccernet.com”重定向到“”,而“”重定向到“”。忽略查询字符串,此url和您拥有的其他url是等效的

print_r(get_headers('http://soccernet.espn.go.com/archive/'),1)

也许cURL是你的朋友。它可以跟随重定向。

也许cURL是你的朋友。它可以遵循重定向。

如果页面内容完全依赖于URL,则这可能没有帮助。两个站点上的非站点页面都必须引用到非站点页面(可以假设),并且相对链接应该相同。在一个精心设计的网站中,相对链接不应该包括该网站的域名,但我承认周围也有类似的网站。。。但是,没有完美的解决方案。此外,如果OP正在寻找相同的内容,则您必须执行页面上的所有Javascript并下载所有参考文件。然而,我认为这可能是OP可能找到的最接近解决方案。不,我的意思是如果页面根据URL生成不同的内容。在我处理过的一个网站上,我认为登录页面的布局不同,这取决于用于检索它的URL。如果页面内容完全依赖于URL,那么这可能不会有帮助。两个网站上的非站点页面都必须引用到非站点页面(可以假设),并且相关链接应该是相同的。在一个精心设计的网站中,相对链接不应该包括该网站的域名,但我承认周围也有类似的网站。。。但是,没有完美的解决方案。此外,如果OP正在寻找相同的内容,则您必须执行页面上的所有Javascript并下载所有参考文件。然而,我认为这可能是OP可能找到的最接近解决方案。不,我的意思是如果页面根据URL生成不同的内容。在我处理过的一个网站上,我相信登录页面有不同的布局