PHP strcmp вопрос - PullRequest
       1

PHP strcmp вопрос

0 голосов
/ 28 августа 2011

Я пишу программу для поиска веб-страниц и пытаюсь сравнить предыдущий URL (для последнего посещенного сайта) с текущим URL (текущим или следующим посещаемым сайтом).Для этого я использую функцию strcmp, например, такую:

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

, где текущий сайт - это массив предыдущих сайтов и текущий сайт.Я перебираю новые сайты каждый раз с помощью рекурсии в более крупной программе.

Однако каждый раз, когда я запускаю strcmp на текущем сайте и новом сайте, даже если URL-адреса идентичны, ярезультат -1.Кто-нибудь знает, почему это может постоянно происходить?

Спасибо.

Ответы [ 2 ]

1 голос
/ 28 августа 2011

, даже если URL-адреса идентичны,

Если две входные строки идентичны, strcmp возвращает 0, поэтому ваши входные строки не идентичны.Проверьте содержимое $ currenttsite.

BTW strcmp($a, $b) == 0 может быть эффективно переписано как $a == $b.

0 голосов
/ 28 августа 2011

Возможно, сайт, который вы тестируете, содержит что-то, что делает его уникальным, например, текущее время или скрытый идентификатор для сохранения сеанса или что-то в этом роде.

В любом случае это приведет к тому, что strcmp не вернет 0. Было бы лучше иметь функцию, которая дает вам процент равенства, чтобы вы могли определить уровень, выше которого вы считаете два сайта идентичными.

...