Проверка строковых полей

Нередко возникает задача проверить текстовое поле на соответствие опреде­ленным критериям. Например, требуется проверить, содержит ли заданное тек­стовое поле слово «РНР». В РНР имеется мощный механизм регулярных выраже­ний, который позволяет решать подобные задачи.

Дан­ную задачу можно решить при помощи регулярного выражения '/php/i'. Для этого используется функция preg_match, как показано в примере:

code: #php
<HTML>
<HEAD>
<TITLE>Использование регулярных выражений</TITLE>
</HEAD>
<BODY>
<CENTER>
<H1>Использование регулярных выражений</H1>
<?php
 
$errors = array();
 
if (isset($_REQUEST["seen_already"])) {
  validate_data();
  if (count($errors)>0) {
    display_errors();
    display_form();
  } else {
    process_data();
  }
} else {
  display_form();
}
 
function validate_data() {
  global $errors;
 
  if (!preg_match('/php/i', $_REQUEST["Text"])) {
    $errors[] = "<FONT COLOR='RED'>B тексте должно быть слово \"РНР\"</FONT>";
  }
}
 
function display_errors() {
  global $errors;
 
  foreach ($errors as $err) {
    echo $err, "<BR>";
  }
}
 
function process_data() {
  echo "Вы сказали: " . $_REQUEST["Text"];
}
 
function display_form() {
  echo "<FORM METH0D='POST' ACTI0N='phpregular.expressions.php'>";
  echo "Скажите что-нибудь про PHP:";
  echo "<BR>";
  echo "<INPUT NAME='Text' TYPE='TEXT'>";
  echo "<BR><BR>";
  echo "<INPUT TYPE='SUBMIT' VALUE='OK'>";
  echo "<INPUT TYPE='HIDDEN' NAME='seen_already' VALUE='data'>";
  echo  "</FORM>";
}
?>
 
</CENTER>
</BODY>
</HTML>

Если пользователь ввел строку, не содержащую слово «РНР», то будет ото­бражено соответствующее сообщение об ошибке.

результат выполнения примера
Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: