Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос по регулярному выражению

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Регулярные выражения
vanicon
Отправлено: 18 Февраля, 2011 - 12:53:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Необходимо обнаруживать различные там типа кавычки,запятые,точки тд и возможно ли это запретить сразу каким нибудь мелким кодом на регулярном выражении или же нужно все эти символы прописывать в регулярке? поискал регулярку на форуме и нашел вот такой кусок кода: preg_match("/\/|_|\\|\:|\*|\?|\<|\>|\|/",blanking_mini($_POST['nic']))
но тут далеко не все символы которые нужно запретить, подскажите какой-нибудь простое решение проблемы!


-----
Так было, так есть и так будет
 
 Top
JustUserR
Отправлено: 19 Февраля, 2011 - 21:42:51
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




vanicon пишет:
Необходимо обнаруживать различные там типа кавычки,запятые,точки тд и возможно ли это запретить сразу каким нибудь мелким кодом на регулярном выражении или же нужно все эти символы прописывать в регулярке?
Для осуществления решения предполагаемой задачи заключающейся в определении содержания в заданном информационном поле элементов отличным от допустимых латинских и региональных символов - возможно использование простого регулярного выражения включающего шаблон сопоставления с указанной группой элементов - однако для обеспечения его корректного фунционирования необходима реализация согласования уровня элементного трактования и кодовой таблицы для получаемых информационных полей


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
movEAX
Отправлено: 20 Февраля, 2011 - 09:44:37
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




vanicon пишет:
но тут далеко не все символы которые нужно запретить, подскажите какой-нибудь простое решение проблемы!

Логичней будет не запрещать неугодные символы, а разрешить те которые дозволены.


-----
армия.. самое убогое место
 
 Top
jenya199
Отправлено: 20 Февраля, 2011 - 11:40:43
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




а у меня такой вопрос по Регулярным Выражениям. Я пишу программу для обработки коментария :
PHP:
скопировать код в буфер обмена
  1. <?
  2. //Подсоеденяемся с Базой
  3. include('blocks/bd.php');
  4.         //Создаём функию для замены Спец. Тэгов
  5.         function replace_tags($msg)
  6.         {
  7.                 $itog = htmlspecialchars($msg);
  8.                 $itog = str_replace("[B]","<b>",$itog);
  9.                 $itog = str_replace("[/B]","</b>",$itog);
  10.                 $itog = str_replace("[I]","<i>",$itog);
  11.                 $itog = str_replace("[/I]","</i>",$itog);
  12.                 $itog = str_replace("[U]","<u>",$itog);
  13.                 $itog = str_replace("[/U]","</u>",$itog);
  14.                 $itog = str_replace("[Q]","<q>",$itog);
  15.                 $itog = str_replace("[/Q]","</q>",$itog);
  16.                 return $itog;
  17.                 //$itog = preg_replace("//","",$itog);
  18.                 //"/http:\/\/(www\.)?([a-z0-9\s]*)(\.[\w]{3,6})\//i"
  19.         }
  20.         //Проверяем Существует ли Переменные
  21.         if(isset($_POST['author'])){$author = $_POST['author'];}
  22.         if(isset($_POST['text'])){$text = $_POST['text'];}
  23.         if(isset($_POST['sum'])){$sum = $_POST['sum'];}
  24.         if(isset($_POST['answer'])){$answer = $_POST['answer'];}
  25.         if(isset($_POST['submit'])){$submit = $_POST['submit'];}
  26.         if(isset($_POST['id'])){$id = $_POST['id'];}
  27.         //Нажал ли Человек на Кнопку???
  28.         if(!isset($submit))
  29.         {
  30.                 header("location: http://localhost/zavody/");
  31.         }
  32.         elseif(isset($submit))
  33.         {
  34.                 //Проверка на совпадения обоих Элэментов
  35.                 if($sum == $answer)
  36.                 {
  37.                         echo "<p>Ваш Ответ: ".$sum." = ".$answer."<br></p>";
  38.                         //Проверяем есть ли Имя У Автора
  39.                         if($author != "")
  40.                         {
  41.                                 echo "<p>Привет ".$author." .<br></p>";
  42.                         }
  43.                         else
  44.                         {
  45.                                 echo "<p>Вы не Ввели Имя<br></p>";
  46.                         }
  47.                         //Проверяем есть ли У Пользователя текст
  48.                         if($text != "")
  49.                         {
  50.                                 $text = replace_tags($text);
  51.                                 echo "<p>Ваш Текст: ".$text." .<br></p>";
  52.                         }
  53.                         else
  54.                         {
  55.                                 echo "<p>Вы не Ввели Текст<br></p>";
  56.                         }
  57.                 }
  58.                 else
  59.                 {
  60.                         echo "<p>Ваш Ответ не Правелен.<br></p>";
  61.                 }
  62.         }
  63.        
  64. ?>

код ещё не готов но вопрос в том как при получения вот например такого коментария:
у меня есть пару сайтов вот http://google[dot]ru/ и http://yahoo.com/. вот эти ссылки вставить в тэг <a href="URL">URL</a> ведь здесь нужно сначала найти в строке эти ссылки потом их через цикл поставить в то место где находились Кто-нибудь может помочь с этой Задачей???
 
 Top
jenya199
Отправлено: 21 Февраля, 2011 - 10:42:21
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




всё вопрос Рещён Радость
 
 Top
JustUserR
Отправлено: 21 Февраля, 2011 - 18:03:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




movEAX пишет:
Логичней будет не запрещать неугодные символы, а разрешить те которые дозволены.
Использование предполагаемого подхода для осуществления создания регулярного выражения с фильтрационной функциональностью в действительности обеспечивает получения корректного решения в общем случае - дело в том что при использовании региональных элементов в случае установки несопоставленных параметров кодовой таблицы и уровня элементного трактования возможно некорректное функционирование регулярного выражения - связанного с допуском определенного элемента в силу отсутствия его ассоциации с шабоном в данном уровне трактования


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
vanicon
Отправлено: 05 Апреля, 2011 - 18:25:18
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Вот написал регулярное выражение по разрешению только букв и цифр
PHP:
скопировать код в буфер обмена
  1.  
  2. if (preg_match("/^[a-z-0-9-а-я]/i", $_POST['login'])) {
  3.     echo "Вхождение найдено.";
  4. } else {
  5. echo 'не найдено';
  6. }
  7.  

Вроде работает, но если я напишу какие символы типа ////[] и тд в начале текста то есть типа вот так: //[]Саша то условие не срабатывает поправьте меня пожалуйста


-----
Так было, так есть и так будет
 
 Top
Champion Супермодератор
Отправлено: 05 Апреля, 2011 - 18:53:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Это регулярное выр-е проверяет только то, что первый символ в строке - буквацифра.
/^[\w\dа-яё]+$/i - под эту регулярку подойдет валидная строка.
/[^\w\dа-яё]/i - под эту инвалидная
 
 Top
vanicon
Отправлено: 05 Апреля, 2011 - 22:11:30
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




/^[a-zA-Zа-яА-Я]+$/ - это вод под валидную строку
а как из этого сделать на не валидную сроку?
(Добавление)
И еще кое что, preg_match функцией определяю совпадение по регулярному выражению, и возникла проблема с кириллицей пробовал устанавливать локали:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. setlocale(LC_CTYPE, array('ru_RU.utf8', 'ru_UA.utf8'));
  3. setlocale(LC_ALL, array('ru_RU.utf8', 'ru_UA.utf8'));
  4.  

Но и результатов это не дало, может есть другие способы?


-----
Так было, так есть и так будет
 
 Top
dedyshka
Отправлено: 06 Апреля, 2011 - 00:15:10
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Янв. 2011  


Помог: 1 раз(а)




насколько я знаю, локаль настраивается на хостинге еще..
 
 Top
vanicon
Отправлено: 06 Апреля, 2011 - 14:03:49
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


Помог: 17 раз(а)




Добавил модификатор u в регулярное выражение, и все теперь работает с кириллицей


-----
Так было, так есть и так будет
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB