ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

preg_match
  #1  
Старый 18.02.2009, 01:02
Аватар для barnaki
barnaki
Познающий
Регистрация: 02.11.2008
Сообщений: 87
Провел на форуме:
93223

Репутация: 14
По умолчанию preg_match

есть код но все время выводит incorrect url format
(даже когда все в норме)
в чем может быть дело
а email работает

if (preg_match("/^[0-9a-zA-Z_]+@[0-9a-zA-Z_]+.[a-zA-Z]{2,6}$/",htmlspecialchars($_POST['email']),$user_data))
{
$email = $user_data[0];
}
else
{
$email = "incorrect email format";
}

if (preg_match("/^(http://|https://)?(www)?[\.]?[a-zA-Z0-9@-]+\.[a-z]{2,6}$/",
htmlspecialchars($_POST['url']),$user_data[0]))
{
$url = $user_data[0];
}
else
{
$url = "incorrect url format";
}
 
Ответить с цитированием

  #2  
Старый 18.02.2009, 01:22
Аватар для EST a1ien
EST a1ien
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме:
1269624

Репутация: 114
Отправить сообщение для EST a1ien с помощью ICQ
По умолчанию

У меня почемуто вначале жаловался пхп на / заменил на # и параметр на GET
и у меня все норм.
if (preg_match("#^(http://|https://)?(www)?[\.]?[a-zA-Z0-9@-]+\.[a-z]{2,6}$#",htmlspecialchars($_GET['url']),$user_data[0]))
{
$url = $user_data[0];
}
else
{
$url = "incorrect url format";
}
print_r($url);

Array ( [0] => http://mytest.ru [1] => http:// )

1.php?url=http://mytest.ru
 
Ответить с цитированием

  #3  
Старый 18.02.2009, 01:39
Аватар для AkyHa_MaTaTa
AkyHa_MaTaTa
Постоянный
Регистрация: 19.03.2007
Сообщений: 684
Провел на форуме:
3152874

Репутация: 1020


Отправить сообщение для AkyHa_MaTaTa с помощью ICQ
По умолчанию

а ты не находиш что спец символы надо экранировать в регулярке(http:\/\/|https:\/\/)?
 
Ответить с цитированием

  #4  
Старый 18.02.2009, 03:23
Аватар для .:EnoT:.
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Цитата:
а ты не находиш что спец символы надо экранировать в регулярке(http:\/\/|https:\/\/)?
Если органичитель не слеш, то экранировать не нужно)

Сопстна не зная какие примерно урлы ТС собирается проверять, могу предположить что регулярка должна быть более менее универсальной.

PHP код:
preg_match("#^(http://|https://)?[www\.]?[a-z0-9-\.]*\.[a-z]{2,6}[/]?[a-z0-9-_\.\#\?/%:=]*$#i"$url$out
Пробелы не забудь убрать.

PHP код:
htmlspecialchars($_POST['url']) 
А вот это в регулярке не нужно)


З.Ы. ТС, может не стоит по каждому вопросу создавать отдельную тему? есть прикреплённые
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ