Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите составить регулярчик! 
:(
    Опции темы
-=Ustas=-
Дата 22.6.2005, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Здрасте всем!
Помогите составить регулярчик для проверки правильности урлов типа http://domain.ru, www.doman.com, http://www.domain.ru и просто domain.ru. Один рег на все возможные значения, такое возможно?



--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 22.6.2005, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



PM ICQ   Вверх
Black
Дата 22.6.2005, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 7
Всего: 45



Может такой рег нужен???

Цитата
(f|ht)tps?://[^ \r]*[^ \r,.:!?)]



--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
-=Ustas=-
Дата 22.6.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Там есть вариант Mal Hack-а
Цитата

Вариант 1. Получаем все URL'ы, в виде http://somedomain.com или somedomain.com. При этом мы сразу осуществляем проверку на их правильность.
Код

<?php

if( preg_match_all( "#(((http|ftp|https):\/\/)|\s)((\w|\d){1,}(\-|\.){0,1}(\w|\d){1,})+?\.(\w){2,4}\/*\s#i" , $text , $matches ) )
  {  print_r ( $matches[0] );  }
else
  {  print "No urls found.";  }

?>


Но этот рег не сечет урлы типа www.domain.ru и domain.ru! Как его можно заточить под мои нужды?

Спасибо.

Это сообщение отредактировал(а) Ustas_007 - 22.6.2005, 12:27


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 22.6.2005, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата
((http|ftp|https):\/\/)|\s)
поставь после этого "?", должно сработать.
PM ICQ   Вверх
-=Ustas=-
Дата 22.6.2005, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



С этим все нищтяк. А вот еще что, допустим когда переменная содержит $url = "www.domain.ru", т.е. нет начального и конечного пробела - этот рег не может определить этот урл, а когда $url = " www.domain.ru ", т.е. эти пробелы присутствуют, то нормально определяет. Как можно доработать этот рег?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Mal Hack
Дата 22.6.2005, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Ustas_007 @ 22.6.2005, 22:51)
С этим все нищтяк. А вот еще что, допустим когда переменная содержит $url = "www.domain.ru", т.е. нет начального и конечного пробела - этот рег не может определить этот урл, а когда $url = " www.domain.ru ", т.е. эти пробелы присутствуют, то нормально определяет. Как можно доработать этот рег?

А что мешает написать: (\s|$) ???
PM ICQ   Вверх
-=Ustas=-
Дата 23.6.2005, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(Mal @ 22.6.2005, 21:54)
А что мешает написать: (\s|$) ???

Извиняюсь за тупость, но куда это вписать? Я в регах не силен, только начинаю с ними разбираться, мож кто знает линк на хороший учебник, именно по регам?!
Спасибо.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
-=Ustas=-
Дата 23.6.2005, 07:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



И еще, нашел в разделе комп.док. линк на книгу Дж.Фридл. Регулярные выражения. Библиотека программиста. 2-е издание. 2003 - http://dfni.dp.ua/books/getleech.php?fi=re...93e1cd98b36fd92, но мне не дают возможность скачать ее - "Текущие ограничения по трафику не позволяют Вам скачать файл". А ссудя по отзывам читателей, книга мощная! Где еще ее можно скачать? Мож у кого есть?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
PARROT
Дата 23.6.2005, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Так?
Код

[\s]?(http|ftp|https)\://[\w\.]*([\w-]*\.){1,2}[\w]{2,4}(\s|$)



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
-=Ustas=-
Дата 23.6.2005, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Цитата(PARROT @ 23.6.2005, 08:22)
Так?
Код

[\s]?(http|ftp|https)\://[\w\.]*([\w-]*\.){1,2}[\w]{2,4}(\s|$)

Нет, этот вообще не прёт. Ну так что, книга Дж.Фридла есть у кого-нить? Please!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
PARROT
Дата 23.6.2005, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Что значит не прет??? Объясняйте яснее, пожалуйста!
Прет... в...


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 23.6.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(Ustas_007 @ 23.6.2005, 07:25)
Извиняюсь за тупость, но куда это вписать?

Самый последнмий \s перед #i замени на то что я написал выше.

PM ICQ   Вверх
lovermann
Дата 23.6.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 28.12.2004
Где: Прага

Репутация: 1
Всего: 8



Ты не то, что с ними разбираться начал, ты в жизни ни одного сам не написал, по ходу. И не надо здесь ля-ля, "подскажите, где учебник"..
PM WWW ICQ   Вверх
-=Ustas=-
Дата 23.6.2005, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



А теперь он пропускает даже такие урлы: wwwwww.somedomain.com, htttttttkjhfdp://somedomain.com. What is? и как с ним бороться?


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
skalex
Дата 23.6.2005, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Мой регэксп:
Код
%^(?:https?|ftp)://[^\\s\"<>]+$%

PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0700 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.