0

我一直在编写一个网络爬虫程序,我试图将以前的 url(最后访问的站点)与当前的 url(当前或下一个要访问的站点)进行比较。为此,我正在使用strcmp如下函数:

array_push($currentsite, $source);
  if (strcmp($currentsite[2], $currentsite[3])==0){
    echo "redundancy";
    crawlWebsite($originalsource);  
    }

其中当前站点是先前站点和当前站点的数组。我每次都在更大的程序中循环遍历新站点。

但是,每次我strcmp在当前站点和新站点上运行 a 时,即使网址相同,我也会得到 -1 的结果。有谁知道为什么这可能会一直发生?

谢谢。

4

2 回答 2

1

即使网址相同,

如果两个输入字符串相同,则 strcmp 返回 0,因此您的输入字符串不相同。检查 $currentsite 的内容。

BTWstrcmp($a, $b) == 0可以有效地重写为$a == $b.

于 2011-08-28T15:05:12.623 回答
0

您正在测试的站点可能包含使其独一无二的内容,例如当前时间或用于保存会话的隐藏 ID 或类似内容。

无论如何,这将导致strcmp不返回 0。最好有一个函数可以为您提供一定百分比的相等性,这样您就可以定义一个您认为两个站点相同的级别。

于 2011-08-28T15:14:14.247 回答