|
|
|
|
|
для: SHAman
(22.03.2007 в 20:43)
| | Да подошло, спасибо.
<?
if(isset($_POST['url']) && $_POST['url'] != "")
{
$url = $_POST['url'];
if (preg_match('|[^-a-z0-9_\.\:\/]|i', $url)) /
{
echo "ведите нормальный URL"; $errors = 1; die();
}
else
{
$errors = 0;
}
}
else
{
echo "Введите URL"; $errors = 1; die();
}
$massiv = parse_url($url);
$url = preg_replace("/(http:\/\/|www\.)/", "", "$massiv[host]");
if ($errors == 0)
{
$query = mysql_query("SELECT * FROM sites WHERE url = '".$url."'");
if (mysql_num_rows ($query) > 0)
{
echo "Сайт с таким URL уже присутствует в каталоге!";
$errors = 1;
die();
}
}
?>
|
Я немного дописал, посмотрите пожалуйста, укажите ошибки. | |
|
|
|
|
|
|
|
для: provodnik
(22.03.2007 в 14:01)
| | Ну что, подошло? | |
|
|
|
|
|
|
|
для: SHAman
(22.03.2007 в 12:43)
| | Спасибо за развернутый ответ.
Сейчас буду пробовать ... | |
|
|
|
|
|
|
|
для: provodnik
(22.03.2007 в 12:18)
| | Требуется сформировать урл, отрезав протокол и имя службы, если они есть?
<?
$strs = array("http://adres.ru", "http://www.adres.ru", "adres.ru");
foreach ($strs as $url)
{
echo preg_replace("/(http:\/\/|www\.)/", "", "$url");
echo "<br/>";
}
?>
|
Если требуется проверка дальнейшая, то нужно сначала отрезать, а потом выполнить другой код на регэкспах, который проверяет запись на запрещенные символы. Ну еще, разве что, можно проверять, является ли домен первого уровня доменом первого уровня. Скажем, при помощи:
Если проверять на запрещенные символы, то еще нужно добавить
Вот, что у меня получилось в итоге:
<?
$strs = array("http://adres.ru", "http://www.adres.ru", "adres.ru");
foreach ($strs as $url)
{
$url = preg_replace("/(http:\/\/|www\.)/", "", "$url");
if (preg_match("/\.\w{2,5}$/", $url))
{
if (preg_match("/[^a-z0-9.-_]/", $url))
{continue;}
echo "$url<br/>";
}
}
?>
|
| |
|
|
|
|
|
|
| Прошу подсказать, логику проверки URL, который пользователь ввел при регистрации. Как вырезать у этих данных "http://", "www", "http://www" при их наличии?
Спасибо. | |
|
|
|
|