|
|
|
| Вобщем проблема такая... Необходимо проверить корректность введенного пользователем адреса сайта. Ну т.е. типа чтоб не ввели что-нить вроде wwwmysite.com вместо www.mysite.com ну и т.п.
Пробовал изменять найденные в этом форуме решения но что-то не так.
Может кто-нибудь что-нибудь подскажет? Потому что вот это ^(http://)?(www\.)?([_0-9a-z-]+\.)+((ru)|(com)|(net)|(org)|(edu)|(uk))
не работает. | |
|
|
|
|
|
|
|
для: b00m
(12.07.2007 в 16:10)
| | А чем wwwmysite.com хуже www.mysite.com? Почему его нельзя вводить? | |
|
|
|
|
|
|
|
для: kasmanaft
(12.07.2007 в 18:44)
| | Мне пока помогает следующее:
<?
if(isset($_POST['url']) && $_POST['url'] != "")
{
$url = $_POST['url'];
if (preg_match('|[^-a-z0-9_\.\:\/]|i', $url))
{
echo "Введите нормальный URL"; die();
}
}
else
{
echo "Введите URL"; die();
}
$massiv = parse_url($url);
$url = preg_replace("/(http:\/\/|www\.)/", "", "$massiv[host]");
echo $url;
?>
|
В бд записываю имя сайта без http:// и www, а при выводе сам их добавляю | |
|
|
|
|
|
|
|
для: provodnik
(13.07.2007 в 11:29)
| | Чет странная у вас проверка... Я бы проверял чем-то типа этого:
/^(http:\/\/)?(www\.)[_a-z0-9.-]+\.[a-z]{2,4}$/i
|
^ и $ - начало и конец строки соответственно. Без них будет очень ненадежно. Скажем, без ^ будет пропускать такое: "bebe-http://ya.ru"
(http:\/\/) и (www\.), думаю понятно для чего.
[_a-z0-9.-]+ - это разрешение на перечисленные символы, которые повторяются один или более раз. Можно вместо плюсика поставить более точное {2,}, что будет говорить о повторении этих символов два и более раз.
[a-z]{2,4} - это повторение буквенных символов от двух до 4 раз. | |
|
|
|