Php: робота з рядками. Строкові функції php
Сайти можна розділити на статичні і динамічні. Після освоєння HTML і CSS, які дозволяють зробити красиву візитку в інтернеті, багато хто замислюється, як створити динамічний сайт на PHP. При цьому верстальник повинен враховувати, що тепер він починає вивчати веб-програмування: принципи роботи з сайтом будуть відрізнятися. Одна з перших проблем, з якою стикається початківець в PHP - робота з рядками, їх читання і обробка.
Варто відзначити, що в PHP функції роботи з рядками мають на увазі велику кількість методів, тому починати їх вивчення варто з найпростіших маніпуляцій, таких як висновок рядка, пошук, отримання або заміна підрядка, дає змогу змінювати регістр і повернення довжини рядка. Багато функцій погано працюють з кириличними символами. Тому всі приклади написані англійською для наочності. Для кириличних рядків використовуються ті ж функції, але з префіксом mb_ (наприклад, mb_strpos ()). Перш ніж використовувати аналоги, в php.ini необхідно розкоментувати рядок -extension = php_mbstring.dll, просто прибравши крапку з комою.
Створення і виведення рядка
Ми розберемо висновок рядка на екран за допомогою відомої всім мовної конструкції echo. Програміст може вивести рядок відразу:
echo "Це Нова Лінія"
або спочатку створити змінну, а потім вивести її на екран:
$ Str = "Це Нова Лінія";
echo $ str;
Якщо потрібно вивести кілька рядків в одній, то вдаються до їх конкатенації:
echo "це" . " Нова" . " рядок"-
або
$ Str1 = "це"-
$ Str2 = "Нова"-
$ Str3 = "рядок"-
echo $ str1. $ Str2. $ str3-
В останньому випадку на екран буде виведено ЕтоНоваяСтрока. Пропуск можна додати відразу при виклику echo:
echo $ str1. ``. $ Str2. ``. $ str3-
У цьому випадку на екран виведеться: "Це Нова Лінія". Конкатенація можлива не тільки при виведенні, але і при створенні рядка:
$ Str1 = "це"-
$ Str2 = "Нова"-
$ Str3 = "рядок"-
$ String = $ Str1. ``. $ Str2. ``. $ str3-
echo $ string-
Echo виводить як Латинські букви, так і кириличні. Якщо одна з змінних містила число, то при конкатенації це число буде перетворено до відповідного рядка:
$ I = 2
$ Sum = $ i + $ i- // тепер $ sum містить число 4
Відео: Вивчаємо PHP | Урок №22 - Строкові функції
echo $ i. " + " . $ I. " = " . $ sum-
На екран буде виведено: "2 + 2 = 4".
службові символи
Припустимо, рядок визначена за допомогою подвійних лапок ($ string = "Ось так"). Тоді можна абсолютно спокійно використовувати керуючі послідовності:
- N здійснює переклад рядка;
- R повертає каретку;
- " екранує подвійні лапки:
- echo "рядок з "подвійними" лапками"- // Рядок з "подвійними" лапками
Відео: PHP ФУНКЦІЇ РОБОТИ ЗІ рядками
Послідовностей набагато більше, все їх знайти можна в офіційній документації PHP.
Як знайти позицію першого входження підрядка
Припустимо, у нас є проста рядок:
$ String = "My name is Yemelyan and I am 27 year old"-
Також у нас є два рядки з іменами:
$ Name = "Yemelyan"-
$ AnotherName = "Katherin"-
Нам необхідно дізнатися, чи містить перший рядок ці два імені. Для цього використовується функція strpos ($ str, $ search). Вона повертає позицію шуканої підрядка $ search, якщо цей рядок міститься у вихідній, $ str. В іншому випадку функція повертає логічне значення false. Наприклад, strpos ($ string, $ anotherName) поверне false, а strpos ($ string, $ name) - ціле число. Код буде таким (напишемо варіант, коли позиція виводиться на екран):
$ String = "My name is Yemelyan and I am 27 year old"-
$ Name = "Yemelyan"-
$ AnotherName = "Katherin"-
echo strpos ($ string, $ anotherName) - // виведе false
echo strpos ($ string, $ name) - // виведе позицію першого входження підрядка
Врахуйте, що нумерація рядка починається з нуля, тобто в нашому випадку останній рядок виведе число 11 (прогалини також вважаються).
Пошук позиції останнього входження підрядка і підводні камені
Якщо функція strpos () повертає позицію першого входження, то зворотна їй функція strrpos () шукає останнє входження підрядка.
Тут є деякі підводні камені, пов`язані з початком нумерації. Це варто враховувати: в PHP робота з рядками може бути ускладнена обмеженнями в порівняннях. Так, краще не використовувати операцію порівняння з запереченням: strpos ($ str, $ search)! = False. У будь-якій версії PHP приклади з подібною еквіваленцію можуть працювати неправильно, адже нумерація рядків починається з нуля, а в логічній інтерпретації 0 і є false. Це поширюється і на функцію strrpos ().
Як знайти число входжень підрядка
Часто потрібно знайти не позицію першого або останнього входження підрядка в рядок, а загальне їх число. Для цього використовується функція substr_count (), яка обробляє щонайменше дві змінні: substr_count ($ str, $ search). Повертає ціле число. Якщо необхідно зменшити область пошуку по рядку, то в функцію передаються ще дві змінні: початок і кінець рядка відповідно. Тобто функція в цьому випадку викликається так: substr_count ($ str, $ search, $ start, $ end). Функція буде шукати подстроку $ search на проміжку від $ start до $ end початкового рядка $ str. Якщо рядок не буде знайдена, то функція поверне нуль.
Як змінити регістр рядки в PHP: приклади
Зміна регістра часто використовується для порівняння рядків і умовних операторів. Припустимо, користувач повинен ввести ім`я верховного бога в скандинавської міфології. У програмі є варіант "Один", З яким і буде порівнюватися відповідь користувача. Якщо введений текст не буде збігатися з наявним (наприклад, користувач напише "один" або "ОДИН"), То програма поверне значення false замість true. Щоб цього уникнути, застосовується функція зміни регістру. Це часто використовується, якщо сайт на PHP має теги: замість сотні варіантів слова "приватне" ("приватне", "приватне", "ОСОБИСТЕ" і т. п.) є тільки один тег в нижньому регістрі.
Функція strtolower () змінює регістр на нижній. Припустимо, є рядок $ catName = "Fluffy". Функція strtolower ($ catName) поверне рядок "fluffy". Змінити регістр на верхній можна за допомогою функції strtoupper ().
Як знайти довжину рядка в PHP: робота з функціями
Часто потрібно знайти довжину рядка. Наприклад, в PHP робота з рядками такого роду може знадобитися в створенні циклу. Для пошуку рядка використовується функція strlen (), яка повертає число - кількість символів. Не можна забувати, що останній символ буде мати номер strlen ($ str) -1, так як нумерація починається з нуля.
Отримання і заміна підрядка в PHP: робота з рядками
Отримання підрядка здійснюється функцією substr (), яка може приймати два або три аргументи: substr ($ str, $ start, $ end). Припустимо, у нас є рядок $ string = "Fluffy cat", І ми хочемо отримати підрядок з другого по четвертий символ. Так як нумерація починається з нуля, то змінна з цієї підрядком буде виглядати так: $ newString = substr ($ string, 1, 4). Якщо ж ми введемо $ newString = substr ($ string, 1), то отримаємо подстроку з другого символу по останній (тобто "luffy"). Цей код ідентичний повного коду рядка з використанням strlen (): substr ($ string, 1, strlen ($ string)).
Для заміни підрядка використовується функція str_replace (), яка приймає три змінні: str_replace ($ subStr, $ newSub, $ str). На відміну від багатьох функцій, str_replace () коректно працює з кириличними символами і не має аналога з префіксом. приклад:
$ Str = "Сьогодні жахлива погода!"-
$ NewStr = str_replace ("жахлива", "чудова", $ Str) - // Сьогодні чудова погода!
Переклад рядка в число
Кожному, хто вивчає веб-програмування, рано чи пізно доводиться переводити рядок в число. Для цього використовуються дві схожі функції: intval () і floatval (), кожна з яких приймає одну змінну $ string. Один від одного вони відрізняються тільки типом повертаються даних: intval () повертає ціле число, а floatval () - число з плаваючою крапкою.
Для використання як intval (), так і floatval () необхідно, щоб рядок починалася з цифр, вони і будуть перетворені в число. Якщо після цифр буде йти будь-який набір букв, вони просто проігнорують. У тому випадку, якщо рядок починається з букв, використання функції поверне нуль. В ідеалі ж рядок повинна містити в собі виключно цифри.
Переклад числа в рядок
Часто потрібно перевести числа в рядок. Скажімо, якщо необхідно взяти половинку числа і звести її в квадрат (наприклад, перевірити, чи виконується рівність: 88 х 88 + 33 х 33 = 8833). У цьому випадку використовується функція strval (), яка повертає рядок з числом. Після цього з новим рядком можна здійснювати всі інші дії: змінювати, шукати входження підрядка і інші функції. При необхідності рядок можна знову перевести в число вже описаним вище способом.
Відео: PHP ФУНКЦІЇ РОБОТИ ЗІ рядками
У статті було розглянуто лише мала частина всіх функцій, пов`язаних з рядками. Частина неописаних функцій працює з символами, але велика не була включена в матеріал через специфічність. Для ознайомлення з цими функціями необхідно перейти до читання офіційної документації по PHP, яка відображає актуальну інформацію.