我一直在写一个网络爬虫程序,我试图比较以前的网址(上一次访问的网站)与当前的网址(当前或下一个网站访问)。为此,我使用如下所示的strcmp函数:
array_push($currentsite, $source);
if (strcmp($currentsite[2], $currentsite[3])==0){
echo "redundancy";
crawlWebsite($originalsource);
}其中,当前站点是先前站点和当前站点的数组。我每次都会在更大的程序中使用递归循环遍历新的站点。
但是,每次我在当前站点和新站点上运行strcmp时,即使urls相同,我也会得到-1的结果。有人知道为什么这种情况会持续发生吗?
谢谢。
发布于 2011-08-28 23:14:14
可能您正在测试的站点包含使其具有唯一性的内容,例如当前时间或用于保存会话的隐藏ID,或者类似下面的内容。
无论如何,这将导致strcmp不返回0。最好有一个函数给你一个相等的百分比,这样你就可以定义一个级别,在这个级别上,你认为两个网站是相同的。
发布于 2011-08-28 23:05:13
即使当urls相同时,
如果两个输入字符串相同,则strcmp返回0,因此您的输入字符串不相同。检查$currentsite的内容。
顺便说一句,可以高效地将strcmp($a, $b) == 0重写为$a == $b。
https://stackoverflow.com/questions/7221704
复制相似问题