X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Программа с регулярными выражениями для определения валидности url
pingvin_hb
pingvin_hb
Topic Starter сообщение 8.1.2011, 21:59; Ответить: pingvin_hb
Сообщение #1


Я исследую три части url: до знака ? (или # если нет ? или до ВК) (основная), после # (если есть) и после ? (если есть). Определяет порты и запись escape (число с процентом). [/COLOR]
Я написал это потому, что назвал Apay, то что я писал раньше - простейшим. Я делю ссылку на три части, можно и неделя, но это для меня трудно. Пример:
[PHP]function checkurl($url) {
$flag=$tmp=$tmp2=$dva=$tri=0;
if ($tmp=strpos($url,'?')) $odin=substr($url,0,$tmp);
elseif ($tmp2=strpos($url,'#')) {$flag=3;$odin=substr($url,0,$tmp2);} // есть 1 и 3 части
else {$odin=$url;$flag=1;} // нет 2 и 3 частей
if (!preg_match("/^https?:\/\/\w[%\\w\\d\\.\\-\/]+(:[\\d]{1,3})?[%\\w\\d\\.-\/]+[%\w\d]\/?$/",$odin)) return 0;
if ($flag==1) return 1; // Учтите, что имя якоря в ссылках всегда ставится в самом конце, и нет 2 части
if ($tmp2) $tri=substr($url,$tmp2); // нет второй части, а 3 есть
elseif ($tmp2=strpos($url,'#')) $tri=substr($url,$tmp2); // есть вторая и третья части
if ($tri) if (!preg_match("/^#[\w\d]+$/",$tri)) return 0; // есть 3 часть, но неправильная
if (!$tmp) return 4; // 2 нет, в 3 в норме
if ($tmp2) $dva=substr($url,$tmp,$tmp2-$tmp);
else $dva=substr($url,$tmp); // есть 2, а 3 нет
if (preg_match("/^\?[\w\d]+\=[%\w\d\.]+((&|&)[\w\d]+\=[%\w\d\.]+)*$/",$dva)) return 2; // точка может итти только после = и до &
return 0;
[/PHP][COLOR=darkblue]
} Если у кого-то будут предложения, замеченные ошибки или идеи по улучшению прошу сюда.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
NoDrum
NoDrum
сообщение 8.1.2011, 23:51; Ответить: NoDrum
Сообщение #2


Может не совсем тебя понял, но есть функция parse_url.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Mulder_hb
Mulder_hb
сообщение 9.1.2011, 13:21; Ответить: Mulder_hb
Сообщение #3


Покажите примеры ссылок.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 9.1.2011, 20:56; Ответить: ZhukV
Сообщение #4


А вот такой УРЛ?
ftp://zhukv.com
https://zhukv.com:xxxx
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
pingvin_hb
pingvin_hb
Topic Starter сообщение 10.1.2011, 0:02; Ответить: pingvin_hb
Сообщение #5


(NoDrum @ 9.1.2011, 01:51) *
... есть функция parse_url.

Я не знал об этой функции, используя её можно было бы сделать проще, а моя в отличие от указанной функция определяет валидность url.
(Mulder_hb @ 9.1.2011, 15:21) *
Покажите примеры ссылок.

Я написал спец программу с разными ссылками:
(ZhukV @ 9.1.2011, 22:56) *
А вот такой УРЛ?

ftp://zhukv.com
ftp не поддерживает специально.
https://zhukv.com:xxxx
Буквенный порт не имеет смысла, а если тут вставить числовой порт – то принимает.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
13 Aloof 3304 Сегодня, 11:57
автор: Skyworker
Открытая тема (нет новых ответов) Посоветуйте массажер для спины и шеи
8 Boymaster 856 Сегодня, 11:43
автор: Skyworker
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыЛюблю творить! Статьи для вас
Копирайтинг- моя жизнь!
312 Zoya83 190637 Сегодня, 7:51
автор: DimonX
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСовременный сервис для быстрого и безопасного обмена валют.
15 CryptoTims 4938 Вчера, 22:32
автор: CryptoTims
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
2 Rebex 816 Вчера, 20:04
автор: Rebex


 



RSS Текстовая версия Сейчас: 23.4.2024, 13:09
Дизайн