Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Строки

Строка — это текст: имя пользователя, заголовок страницы, сообщение об ошибке. Работа со строками встречается почти в каждой программе.

Запись строки

Строку записывают в кавычках:

<?php
 
echo 'Привет, мир!';

Одинарные и двойные кавычки

В одинарных кавычках текст выводится как есть. В двойных работают подстановка переменных и специальные символы: \n — перевод строки, \t — табуляция.

<?php
 
echo "Первая строка\nВторая строка";

Чтобы вставить в строку саму кавычку, перед ней ставят обратную косую черту:

<?php
 
echo "Он сказал: \"Привет\"";

Если подстановка не нужна, используйте одинарные кавычки — так сразу видно, что в строке нет переменных.

Склейка строк

Строки соединяются оператором «точка». Оператор .= дописывает текст в конец переменной:

<?php
 
$first = 'Иван';
$last = 'Петров';
 
$full = $first . ' ' . $last;
$full .= '!';
 
echo $full; // Иван Петров!

Длина строки

Функция strlen() считает байты, а mb_strlen() — символы. Для кириллицы результаты отличаются вдвое:

<?php
 
echo strlen('привет'), "\n";    // 12
echo mb_strlen('привет');       // 6

Поиск и регистр

<?php
 
var_dump(str_contains('Привет, мир', 'мир')); // bool(true)
 
echo mb_strtoupper('привет'), "\n"; // ПРИВЕТ
echo mb_strtolower('ПРИВЕТ');       // привет

Функция str_contains() проверяет, есть ли в строке нужный фрагмент. Поиск учитывает регистр: «Мир» и «мир» — разные строки.

Подстрока и замена

mb_substr() вырезает часть строки: указывается начальная позиция (счёт идёт с нуля) и количество символов. str_replace() заменяет все вхождения одного фрагмента на другой:

<?php
 
echo mb_substr('Программа', 0, 3), "\n";          // Про
echo str_replace('мир', 'PHP', 'Привет, мир!');   // Привет, PHP!

Лишние пробелы

Данные от пользователя часто приходят с пробелами по краям. Их убирает trim():

<?php
 
var_dump(trim('  текст  ')); // string(10) "текст"

Частая ошибка

Функции без префикса mb_ работают с байтами и ломают кириллицу: strtoupper('привет') не изменит строку, а substr() может разрезать букву пополам. Для текста на русском всегда берите версии с mb_.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.