Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Логика и выражение для проверки URL

Сообщения:  [1-5] 

 
 автор: provodnik   (23.03.2007 в 09:48)   письмо автору
 
   для: 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();
    }
}
?>

Я немного дописал, посмотрите пожалуйста, укажите ошибки.

   
 
 автор: SHAman   (22.03.2007 в 20:43)   письмо автору
 
   для: provodnik   (22.03.2007 в 14:01)
 

Ну что, подошло?

   
 
 автор: provodnik   (22.03.2007 в 14:01)   письмо автору
 
   для: SHAman   (22.03.2007 в 12:43)
 

Спасибо за развернутый ответ.
Сейчас буду пробовать ...

   
 
 автор: 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/>";
    }
?>


Если требуется проверка дальнейшая, то нужно сначала отрезать, а потом выполнить другой код на регэкспах, который проверяет запись на запрещенные символы. Ну еще, разве что, можно проверять, является ли домен первого уровня доменом первого уровня. Скажем, при помощи:

/\.\w{2,5}$/


Если проверять на запрещенные символы, то еще нужно добавить

/[^a-z0-9-_.]/


Вот, что у меня получилось в итоге:

<?
$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/>";
        }
    }
?>

   
 
 автор: provodnik   (22.03.2007 в 12:18)   письмо автору
 
 

Прошу подсказать, логику проверки URL, который пользователь ввел при регистрации. Как вырезать у этих данных "http://", "www", "http://www" при их наличии?
Спасибо.

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования