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

echo $ i. "+". $ I. "=". $ Sum-

На екран буде виведено:"2 + 2 = 4".

сайт на php

Службові символи

Припустимо, рядок визначена за допомогою подвійних лапок ($ string = "Ось так"). Тоді можна абсолютно спокійно використовувати керуючі послідовності:

  • N здійснює переклад строкі;
  • R повертає каретку;
  • "Екранує подвійні лапки:
    • echo "Рядок з " подвійними "лапками" - // Рядок з "подвійними" лапками
  • $ Екранує доллар;
  • Екранує зворотну косу риску.

Послідовностей набагато більше, всі їх знайти можна в офіційній документації 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 робота

Отримання і заміна підрядка в 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) - // Сьогодні чудова погода!

Переклад рядка в число

php прикладиКожному, хто вивчає веб-програмування, рано чи пізно доводиться переводити рядок у число. Для цього використовуються дві схожі функції: intval () і floatval (), кожна з яких бере одну змінну $ string. Один від одного вони відрізняються тільки типом повертаються даних: intval () повертає ціле число, а floatval () - число з плаваючою крапкою.

Для використання як intval (), так і floatval () необхідно, щоб рядок починалася з цифр, вони і будуть перетворені в число. Якщо після цифр буде йти будь-який набір букв, вони просто проігнорують. У тому випадку, якщо рядок починається з букв, використання функції поверне нуль. В ідеалі ж рядок має містити в собі виключно цифри.

Переклад числа в рядок

Часто потрібно перевести числа в рядок. Скажімо, якщо необхідно взяти половинку числа і звести її в квадрат (наприклад, перевірити, чи виконується рівність: 88 х 88 + 33 х 33 = 8833). У цьому випадку використовується функція strval (), яка повертає рядок з числом. Після цього з новим рядком можна здійснювати всі інші дії: змінювати, шукати входження підрядка та інші функції. При необхідності рядок можна знову перевести в число вже описаним вище способом.

У статті була розглянута лише мала частина всіх функцій, пов'язаних з рядками. Частина неописаних функцій працює з символами, але більша не була включена в матеріал через специфічність. Для ознайомлення з цими функціями необхідно перейти до читання офіційній документації по PHP, яка відображає актуальну інформацію.

Поділися в соц мережах:

Увага, тільки СЬОГОДНІ!