2011-12-06 2 views
0

Здравствуйте, я пытаюсь сделать маленький паук. Пока я строил его, я столкнулся с проблемой, когда мне нужно проверить, является ли ссылка ссылкой на корневой домен или субдомен.Curl Проверьте, является ли домен корнем

Например:

http://www.domain.com or 
http://domain.com 
http://domain.com/index.php 
http://domain.com/default.php 
http://domain.com/index.html 
http://domain.com/default.html 

. . и т. Д. все одинаковы.

Так что мне нужна функция на самом деле, которая берет строковый url как входной файл и проверяет, является ли это корнем или домашней страницей, что бы вы хотели назвать ее сайтом.

+0

технически www.domain.com и domain.com НЕ совпадают, www является субдоменом, который большинство людей всегда указывает на свой домен.com, так же как hello.domain.com является субдоменом. – Jakub

+1

Не предполагайте, что все сайты будут использовать это соглашение. В каждом из этих URL-адресов вполне возможно иметь разные сайты. Если бы я был вами, я бы использовал контент и использовал его для сравнения с тем, что вы уже загрузили. – Brad

+0

Следует ли сравнивать содержимое? Разве www.domain.com не является поддоменом domain.com? –

ответ

0

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

Вам нужно по крайней мере, для обработки:

  • относительные пути
  • GET-переменные, которые в той или иной мере существенные для веб-страницы, но не делает различий в содержании.
  • Неправильные URL.
  • Информация, связанная с JavaScript, в атрибуте href.
  • Ссылки на материалы, отличные от HTML. Прямая загрузка ссылок на PDF-файлы, изображения и т. Д. (Обнаружить его при расширении не всегда достаточно, что с PHP-скриптами, доставляющими изображения).

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

+0

zrvan спасибо, Ι думаю, что вы правы. На самом деле мне нравится, когда я кодирую, чтобы сделать вещи полезными для будущего использования, поэтому я нахожусь в общем кодировании :). Я считаю, что учет содержания страницы решает проблему уникальности страницы. поскольку два url имеют одинаковый контент, то эти две «страницы» похожи или одинаковы, несмотря на то, что urlpath внутри домена отличается. Итак, теперь я пришел к проблеме: мне нужно сравнить две большие строки и быстро. – themis

+1

@themhz: для этого обычно используется хэш, в зависимости от потребностей паука вам нужно выбирать между быстрым алгоритмом с рисками столкновения (например, md5) или более медленным с низким уровнем риска (например, что-то в ша-семье), проверьте таблицу времени на 'luka8088 в gmail dot com' здесь: http://se.php.net/manual/en/function.hash.php. Но это действительно тема нового вопроса SO. – zrvan

Смежные вопросы