Операції над рядками

Операції над рядками.

Властивості рядка в PHP:

Для конкатенації (приєднання рядків) використовується оператор "." (крапка). Приклад конкатенації рядків:

$ C = $ a. $ B; // число + число

$ C = $ a. $ D; // число + рядок

echo "$ c \ n"; // виведе 20 Hello

У PHP операнди порівнюються як ланцюжки, тільки в тому випадку, якщо вони - рядки. В іншому випадку вони порівнюються, як числа. При цьому будь-який рядок, яку інтерпретатора не вдається перевести в число, буде сприйматися, як 0.

Найкраще для порівняння використовувати = = = (потрійний оператор рівності - оператор еквівалентності). Він завжди дозволяє проводити коректне порівняння, тому що він порівнює величини і за значенням, і за типом.

Функція strlen () повертає довжину рядка, тобто кількість символів, яке містить рядок.

echo strlen ($ a); // виведет5

Функція strpos () шукає підрядок в рядку. Функції потрібно передати три параметри:

  • рядок, в якій шукаємо подстроку.
  • подстроку.
  • позицію, починаючи з якої відбувається пошук. Даний параметр необов'язковий і за замовчуванням дорівнює 0.

Якщо рядок не знайдена, функція повертає false, в іншому випадку - номер позиції, з якої починається входження підрядка в рядок:

echo strpos ( "Hello", "el"); // виведе 1

Функція substr (string $ str, int $ from, int $ lenght) повертає задану ділянку рядки, тобто підрядок. Повертається подстрока рядка $ str, починаючи з позиції $ from довжини $ length. Якщо параметр $ from буде негативним, то відлік підрядка буде проводитися з кінця рядка, а не з початку. Параметр $ length є необов'язковим.

echo substr ($ str, 1, 1); // виведе o

echo substr ($ str, -1, 1); // виведе k

Функція strcmp ($ str1, $ str2) порівнює два рядки і повертає наступні значення:

0, якщо рядки рівні;

1, якщо рядок $ str1 лексикографічно більше $ str2;

-1, якщо рядок $ str 1 "менше" $ str2.

Функція strasecmp (sstring $ str1, string $ str2) порівнює два рядки без урахування регістру символів, тобто, рядки BOOK, BOOK і book для цієї функції рівні.

Функція str_replace ($ str1, $ str2, $ source) замінює в рядку $ source (яка в процесі роботи функції не змінюється) все входження підрядка $ str1 на подстроку $ str2 і повертає результат у вигляді нового рядка.

Приклад заміни символів нового рядка \ n на тег
:

$ Str = str_replace ( "\ n", "
", $ Str);

Функція WordWrap () виявляється дуже корисною, коли потрібно відформатувати текст листа перед його відправкою. Ця функція розбиває текст листа на рядки, завершуючи кожну символом розриву рядка (за замовчуванням \ n). У кожному рядку повинно бути не більше 75 символів (але можна вказати й інше їх кількість). наприклад:

// розбиваємо по 15 символів

$ S = WordWrap ($ s, 15, "\ n");

Функція strip_tags (). Ця функція видаляє з рядка всі HTML - теги:

Список тегів, які не варто видаляти, можна вказати їх при виконанні функції:

$ S = strip_tags ($ s, "");

Звернутися до будь-якого символу рядка можна за його індексом:

echo $ str [0]; // виведе В

Функція chr (int $ code) повертає рядок, що складається з символу з кодом $ code. а функціяord ($ char) - код символу $ char:

echo chr (75); // виведе K

echo ord ( 'A'); // виведе 65 - код літери A

Для перекладу символів в нижній регістр використовується функція strtolower (), а в верхній - strtoupper ().

$ Str = strtolower ($ str);

$ Str = strtoupper ($ str);

  • LC_TYPE - використовується для установки локалі перекладу символів нижній / верхній регістри.
  • LC_NUMERIC - використовується для установки локалі для функції форматування дрібних чисел.
  • LC_TIME - допомагає налаштувати форматований вивід дати і часу.
  • LC_ALL - встановлює всі перераховані вище режими.

SetLocal ( 'LC_TYPE', 'ru_RU.koi8');

Після прийому параметрів (наприклад при заповненні форми), перш ніж приступити до їх обробки, потрібно перетворити значення параметрів (видалити зайві пробіли). Пробільними символами є символи "", \ n, \ r, \ t.

Функція trim () видаляє пробільні символи на початку і в кінці рядка, наприклад:

$ S = trim ($ s); // $ s = "string"

Крім функції trim () можна використовувати функції ltrim () і chop (). Перша видаляє пробільні символи тільки на початку рядка, друга - тільки в кінці.

Функція UrlEncode () використовується для кодування даних. Кодування необхідно для передачі даних через Інтернет, що містять спеціальні символи національних алфавітів, наприклад російської мови. При передачі цілого файлу його необхідно закодувати за допомогою функції UrlEncode ().

Приклад автоматичного формування посилання :

$ Param = "Російський текст";

У наступному лістингу приведений приклад, який демонструє спільну роботу функцій UrlEncode () і UrlDecode ().

$ Param = "Російський текст";

$ Param = UrlEncode ($ Param);

$ Param = UrlDecode ($ Param);

Для виведення лапок і похилій риси необхідно використовувати цитування, тобто, запис цих символів через похилу риску:

$ S = "\\" ' ";

Для додавання Слеш використовується функція AddSlashes (string $ str). а для видалення - StripSlashes (atring $ str).

Обидві функції повертають модифіковану рядок і не змінюють вихідну.

Функція HtmlSpecialChars (string $ str) замінює спеціальні символи (лапки, "більше", "менше" і інші) на їх HTML - еквіваленти, для того, щоб на Web - сторінці вони виглядали самі собою. Наприклад при використанні функції HtmlSpecialChars. знак "більше" в коді буде замінений рядком gt, а лапки - ". Приклад використання функції HtmlSpecialChars.

$ S = " <> "";

$ S = HtmlSpecialChars ($ s);

echo $ s; // виведе - lt; gt; "

У PHP застосовується функція convert_cyr_string (). перетворює російський текст з одного кодування в іншу. Цій функції необхідно передати три параметри:

  • Вихідну рядок.
  • Вихідну кодування.
  • Необхідне кодування.

Останні два параметри можуть набувати наступних значень:

Приклад використання функції convert_cyr_string ().

// Перетворення слова "Привіт" з кодування koi8-r в windows-1251

echo convert_cyr_string ( "Привіт", "k", "w"); // виведе "оПХБЕР"

Функціяmd5 () кодує рядок, використовуючи алгоритм MD5 (Message Digest Algorithm). Імовірність того, що дві різні рядки матимуть однаковий хеш - код, прагне до нуля, а це дозволяє ефективно використовувати цю функцію для шифрування паролів. Зашифроване з його допомогою повідомлення неможливо розшифрувати - для алгоритму MD5 не існує алгоритму дешифрування. Для перевірки справжності пароля потрібно зашифрувати пароль заново і порівняти зашифровані рядки: якщо вони рівні, значить пароль правильний. наприклад:

if (md5 ($ a) === md5 ($ b)) echo "1: пароль правильний";

if (md5 ($ a) === md5 ($ c)) echo "2: пароль правильний";

Сценарій виведе тільки перше повідомлення, оскільки рядки (значить, і їх хеш - коди) рівні. Рекомендації по використанню цієї функції:

Крім функції md5 () можна використовувати функцію crypt (). яка реалізує алгоритм DES. але даний алгоритм менш ефективний, тому для серйозних проектів не застосовується.

Схожі статті