Как проверить, есть ли что-нибудь по URL? - PullRequest
2 голосов
/ 12 ноября 2011

Часть моего сайта требует, чтобы пользователь вводил URL-адреса, но в случае, если они неправильно вводят URL-адрес или просто вводят несуществующий, я получаю плохую запись в своей базе данных.

  • E.G в Chrome, если в URL ничего нет, вы получаете сообщение об ошибке сообщение "К сожалению! Google Chrome не может найти fdsafadsfadsf.com". (это тот случай, о котором я говорю)

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

Какие существуют другие способы проверить, есть ли что-то по определенному URL?

Ответы [ 4 ]

4 голосов
/ 12 ноября 2011

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

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

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

Пример реализации с cURL здесь: http://icfun.blogspot.com/2008/07/php-get-server-response-header-by.html

1 голос
/ 12 ноября 2011

Я бы использовал cURL для этого, чтобы вы могли указать для него время ожидания.

Смотрите комментарии на: http://php.net/manual/en/function.get-headers.php

1 голос
/ 12 ноября 2011

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

http://jimbojw.com/wiki/index.php?title=Introduction_to_Cross-Domain_Ajax

1 голос
/ 12 ноября 2011

Вы можете использовать php get_headers ($ url) , который вернет false, если ответа нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...