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
Форумы портала PHP.SU :: Версия для печати :: Вопрос по регулярному выражению
Форумы портала PHP.SU » PHP » Регулярные выражения » Вопрос по регулярному выражению

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

1. vanicon - 18 Февраля, 2011 - 12:53:19 - перейти к сообщению
Необходимо обнаруживать различные там типа кавычки,запятые,точки тд и возможно ли это запретить сразу каким нибудь мелким кодом на регулярном выражении или же нужно все эти символы прописывать в регулярке? поискал регулярку на форуме и нашел вот такой кусок кода: preg_match("/\/|_|\\|\:|\*|\?|\<|\>|\|/",blanking_mini($_POST['nic']))
но тут далеко не все символы которые нужно запретить, подскажите какой-нибудь простое решение проблемы!
2. JustUserR - 19 Февраля, 2011 - 21:42:51 - перейти к сообщению
vanicon пишет:
Необходимо обнаруживать различные там типа кавычки,запятые,точки тд и возможно ли это запретить сразу каким нибудь мелким кодом на регулярном выражении или же нужно все эти символы прописывать в регулярке?
Для осуществления решения предполагаемой задачи заключающейся в определении содержания в заданном информационном поле элементов отличным от допустимых латинских и региональных символов - возможно использование простого регулярного выражения включающего шаблон сопоставления с указанной группой элементов - однако для обеспечения его корректного фунционирования необходима реализация согласования уровня элементного трактования и кодовой таблицы для получаемых информационных полей
3. movEAX - 20 Февраля, 2011 - 09:44:37 - перейти к сообщению
vanicon пишет:
но тут далеко не все символы которые нужно запретить, подскажите какой-нибудь простое решение проблемы!

Логичней будет не запрещать неугодные символы, а разрешить те которые дозволены.
4. jenya199 - 20 Февраля, 2011 - 11:40:43 - перейти к сообщению
а у меня такой вопрос по Регулярным Выражениям. Я пишу программу для обработки коментария :
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> ведь здесь нужно сначала найти в строке эти ссылки потом их через цикл поставить в то место где находились Кто-нибудь может помочь с этой Задачей???
5. jenya199 - 21 Февраля, 2011 - 10:42:21 - перейти к сообщению
всё вопрос Рещён Радость
6. JustUserR - 21 Февраля, 2011 - 18:03:42 - перейти к сообщению
movEAX пишет:
Логичней будет не запрещать неугодные символы, а разрешить те которые дозволены.
Использование предполагаемого подхода для осуществления создания регулярного выражения с фильтрационной функциональностью в действительности обеспечивает получения корректного решения в общем случае - дело в том что при использовании региональных элементов в случае установки несопоставленных параметров кодовой таблицы и уровня элементного трактования возможно некорректное функционирование регулярного выражения - связанного с допуском определенного элемента в силу отсутствия его ассоциации с шабоном в данном уровне трактования
7. vanicon - 05 Апреля, 2011 - 18:25:18 - перейти к сообщению
Вот написал регулярное выражение по разрешению только букв и цифр
PHP:
скопировать код в буфер обмена
  1.  
  2. if (preg_match("/^[a-z-0-9-а-я]/i", $_POST['login'])) {
  3.     echo "Вхождение найдено.";
  4. } else {
  5. echo 'не найдено';
  6. }
  7.  

Вроде работает, но если я напишу какие символы типа ////[] и тд в начале текста то есть типа вот так: //[]Саша то условие не срабатывает поправьте меня пожалуйста
8. Champion - 05 Апреля, 2011 - 18:53:16 - перейти к сообщению
Это регулярное выр-е проверяет только то, что первый символ в строке - буквацифра.
/^[\w\dа-яё]+$/i - под эту регулярку подойдет валидная строка.
/[^\w\dа-яё]/i - под эту инвалидная
9. vanicon - 05 Апреля, 2011 - 22:11:30 - перейти к сообщению
/^[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.  

Но и результатов это не дало, может есть другие способы?
10. dedyshka - 06 Апреля, 2011 - 00:15:10 - перейти к сообщению
насколько я знаю, локаль настраивается на хостинге еще..
11. vanicon - 06 Апреля, 2011 - 14:03:49 - перейти к сообщению
Добавил модификатор u в регулярное выражение, и все теперь работает с кириллицей

 

Powered by ExBB FM 1.0 RC1