Відмінності між версіями «7 Робота з рядками»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
м (Захист на 7 Робота з рядками встановлено (‎[edit=sysop] (безстроково) ‎[move=sysop] (безстроково)))
Рядок 1: Рядок 1:
Ця  функція належить до функцій перетворення символів, про які ми теж будемо говорити в цьому розділі. Цю функцію ми винесли в самий початок через те, що вона робить одну просту, але важливу річ - виробляє перетворення спецсимволів в їх HTML еквіваленти. Попросту кажучи, ця функція гарантує, що якщо Ви раптом надумаєте написати в гостьовій книзі або на форумі якийсь код (php, javascript і т.д.) він відобразитися абсолютно нормально, але виконуватися не буде!Тобто функцію треба застосовувати, якщо потрібно вивести у броузері якийсь код.Крім того, ця функція позбавляє Вас від всяких кретинів, яким нічим зайнятися окрім як писати в Ваших гостьових книгах (і будь-яких формах вводу) будь-які скрипти. Ну а тепер, власне, про функції.
+
Нижче буде приведений перелік основних рядкових функцій в РНР.
Синтаксис:
+
 
string htmlspecialchars (string str [, int quote_style [, string charset]]);
+
Функція trim - видаляє пробіли з початку і кінця рядка. Її доречно використовувати наприклад для запобігання некоректного вводу пароля, чи логіну в поле авторизації, тобто користувач може випадково ввести пробіл, програма його врахує, як один з символів і видасть помилку, що користувача з таким логіном, чи паролем не існує. Щоб цього не сталось і використовується вище згадана функція, яка видаляє лишні пробіли.
Перший аргумент - рядок, у якому треба виконати перетворення. В якості другого необов'язкового аргументу приймається константа, що задає режим перетворення лапок. За замовчуванням, використовується ENT_COMPAT, перетворююча подвійні лапки, при цьому поодинокі залишаються без змін. У режимі ENT_QUOTES перетворюються і подвійні, і одиночні лапки. а в режимі ENT_NOQUOTES і подвійні, і одиночні лапки залишаються без змін. Третій необов'язковий аргумент приймає рядок, що представляє набір символів, що використовуються в перетворенні (за замовчуванням ISO-8859-1).
+
 
Наприклад, якщо Ви обробляєте якесь повідомлення $ msg форми, то обробка його функцією htmlspecialchars () можлива наступним чином:
+
Наприклад:
$ Msg = htmlspecialchars ($ msg);
+
 
Як бачите, все просто.
+
<?
А для того, щоб у Вас все це гарненько запам'яталося наведемо такий повчальний прімерчік, який, сподіваємося, змусить Вас не забувати про цю функцію.
+
$name = trim ($name);
Примітивний php скриптик, який буде відображати дані, що вводяться у формі.
+
$password = trim ($password);
<?
+
$email = trim ($email);
  $ Action = $ _POST ["action"];
+
?>
  if (empty ($ action))
+
 
  {
+
В даному прикладі ми видалили лишні пробіли з форми в якій зазначені такі дані, як логін користувача, пароль і його електронна адреса.
  ?>
+
А функція ltrim видаляє пробіли лише на початку рядка.
      <HTML>
+
Рядкова функція print аналогічна оператору echo, тобто виводить відповідний рядок.
      <HEAD>
+
Функція strlen рахує кількість символів в рядку. З її допомогою можна перевірити довжину рядка.
      <TITLE> Прімерчік </ TITLE>
+
Наприклад давайте перевіримо за її допомогою правильність вводу e-mail адреси користувачем:
      </ HEAD>
+
 
      <BODY>
+
<?
      <center>
+
if (strlen($email) < 6)//якщо в рядку менше 6-ти символів
      <table width=1 border=0>
+
{
      <form action=test1.php method=post>
+
echo "Ви невірно ввели email адресу!"; //виводиться слідуюче повідомлення
        <input type=hidden name=action value=post>
+
}
        <tr> <td colspan=2> Повідомлення <br>
+
?>
        <? echo $ msg;?>
+
 
        </ Textarea> </ td> </ tr>
+
З допомогою функції str_replace можна здійснити заміну одних символів іншими. Ось її синтаксис:
        <tr> <td colspan=2> <input type=submit value='Добавіть'> </ td> </ tr>
+
 
      </ Form>
+
str_replace ("що замінити", "чим замінити", $рядок);
      </ Table>
+
 
      </ Center>
+
Слідуючу функцію strcmp, яка призначена для порівняння рядків, можна застосовувати наприклад при ідентифікації пароля введеного користувачем в форму авторизації з паролем, що прописаний в БД в момент реєстрації цього користувача. Ось приклад:
      </ BODY>
+
 
      </ HTML>
+
<?
  <?
+
if (strcmp ($newstr, $pass) == 0) // якщо рядки співпадають, то функція повертає значення "0"
  }
+
{
?>
+
echo "Ви є зареєстрованим користувачем."; // тоді виводиться такий текст
Нічого складного, просто форма для введення повідомлення. Виводиться і обробляється введене повідомлення файлом, зазначеним action'е форми (test1.php). Код, написаний в цьому файлі теж простий:
+
}
<?
+
else
  $ Msg = substr ($ _POST ["msg"], 0,1024);
+
{
  $ Msg = htmlspecialchars ($ msg);
+
echo " Ви ввели невірний пароль."; // інакше при неспівпадінні рядків виводиться таке повідомлення
  print "<P>". $ msg. "</ P> \ n";
+
}
?>
+
?>
Виділяємо із змінної $ _POST повідомлення (про функції substr() дивіться трохи нижче), обробляємо це повідомлення функцією htmlspecialchars () і виводимо.
+
 
 +
Функція strtolower - переводить символи рядка в нижній реєстр. Ось синтаксис:
 +
 
 +
strtolower($рядок);
 +
 
 +
А strtoupper - навпаки, тобто в верхній реєстр.
 +
 
 +
І остання функція про яку хочеться згадати в даній статті - це ucfirst. Вона переводить перший символ рядка в верхній реєстр. Її синтаксис доволі простий:
 +
 
 +
ucfirst($рядок);

Версія за 18:34, 24 грудня 2012

Нижче буде приведений перелік основних рядкових функцій в РНР.

Функція trim - видаляє пробіли з початку і кінця рядка. Її доречно використовувати наприклад для запобігання некоректного вводу пароля, чи логіну в поле авторизації, тобто користувач може випадково ввести пробіл, програма його врахує, як один з символів і видасть помилку, що користувача з таким логіном, чи паролем не існує. Щоб цього не сталось і використовується вище згадана функція, яка видаляє лишні пробіли.

Наприклад:

<?
$name = trim ($name);
$password = trim ($password);
$email = trim ($email);
?>

В даному прикладі ми видалили лишні пробіли з форми в якій зазначені такі дані, як логін користувача, пароль і його електронна адреса. А функція ltrim видаляє пробіли лише на початку рядка. Рядкова функція print аналогічна оператору echo, тобто виводить відповідний рядок. Функція strlen рахує кількість символів в рядку. З її допомогою можна перевірити довжину рядка. Наприклад давайте перевіримо за її допомогою правильність вводу e-mail адреси користувачем:

<?
if (strlen($email) < 6)//якщо в рядку менше 6-ти символів
{
echo "Ви невірно ввели email адресу!"; //виводиться слідуюче повідомлення
}
?>

З допомогою функції str_replace можна здійснити заміну одних символів іншими. Ось її синтаксис:

str_replace ("що замінити", "чим замінити", $рядок);

Слідуючу функцію strcmp, яка призначена для порівняння рядків, можна застосовувати наприклад при ідентифікації пароля введеного користувачем в форму авторизації з паролем, що прописаний в БД в момент реєстрації цього користувача. Ось приклад:

<?
if (strcmp ($newstr, $pass) == 0) // якщо рядки співпадають, то функція повертає значення "0"
{
echo "Ви є зареєстрованим користувачем."; // тоді виводиться такий текст
}
else
{
echo " Ви ввели невірний пароль."; // інакше при неспівпадінні рядків виводиться таке повідомлення
}
?>

Функція strtolower - переводить символи рядка в нижній реєстр. Ось синтаксис:

strtolower($рядок);

А strtoupper - навпаки, тобто в верхній реєстр.

І остання функція про яку хочеться згадати в даній статті - це ucfirst. Вона переводить перший символ рядка в верхній реєстр. Її синтаксис доволі простий:

ucfirst($рядок);
Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти