我一直在编写一个webcrawler程序,我正在尝试将之前的网址(最后访问的网站)与当前网址(当前或下一个要访问的网站)进行比较。为此,我使用strcmp
函数,例如:
array_push($currentsite, $source);
if (strcmp($currentsite[2], $currentsite[3])==0){
echo "redundancy";
crawlWebsite($originalsource);
}
其中当前站点是以前站点和当前站点的数组。每次在较大的程序中进行递归时,我都在遍历新站点。
但是,每当我在当前网站和新网站上运行strcmp
时,即使网址相同,我的结果为-1。有谁知道为什么会一直这样?
感谢。
答案 0 :(得分:1)
即使网址相同,
如果两个输入字符串相同,则strcmp返回0,因此输入字符串不相同。检查$ curreite的内容。
BTW strcmp($a, $b) == 0
可以有效地重写为$a == $b
。
答案 1 :(得分:0)
您正在测试的网站可能包含使其独一无二的内容,例如当前时间或用于保存会话的隐藏ID或类似内容。
无论如何,这将导致strcmp
不返回0.如果你有一个函数可以给你一定的相等百分比,那么你可以定义一个你认为两个网站相同的级别。