Функции подстрок и дополнения
Извлекайте и форматируйте фрагменты строк с помощью substr, str_pad и wordwrap
«Функции подстрок и дополнения» — бесплатный урок PHP Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Извлечение частей строк
В PHP есть мощные функции для извлечения частей строк, их сокращения и дополнения. Они необходимы для форматирования вывода и обработки текстовых данных.
Извлечение части строки
Извлекайте часть строки, указывая начальную позицию и необязательную длину:
<?php
$str = 'Hello, World!';
echo substr($str, 7); // World!
echo substr($str, 7, 5); // World
echo substr($str, -6); // World!
echo substr($str, -6, 5); // WorldИзвлечение многобайтных строк
Для многобайтных строк (UTF-8) используйте mb_substr(), чтобы извлекать части корректно:
<?php
$str = 'Привет Мир'; // Russian
// substr counts bytes, not characters:
echo strlen($str); // 19 bytes
// mb_substr counts characters:
echo mb_substr($str, 0, 6); // ПриветДополнение строк
Дополняйте строку до заданной длины:
<?php
// Default: right-pad with spaces
echo str_pad('5', 3, '0', STR_PAD_LEFT); // 005
echo str_pad('PHP', 10); // 'PHP '
echo str_pad('hi', 8, '-', STR_PAD_BOTH); // ---hi---
// Format invoice numbers:
echo 'INV-' . str_pad(42, 5, '0', STR_PAD_LEFT); // INV-00042Перенос строк по ширине
Переносите строку после указанного количества символов, разрывая её по границам слов:
<?php
$text = 'The quick brown fox jumped over the lazy dog';
echo wordwrap($text, 15, PHP_EOL, false);
// The quick brown
// fox jumped over
// the lazy dogРазделение строк на части
Вставляйте строку-разделитель через каждые N символов — это удобно для кодирования вывода, например в base64:
<?php
$data = '1234567890ABCDEF';
echo chunk_split($data, 4, '-');
// 1234-5678-90AB-CDEF-
// Typical use: base64 encoded email attachments
$encoded = base64_encode(file_get_contents('file.bin'));
$formatted = chunk_split($encoded, 76, "\n");Преобразование переводов строк в HTML
Преобразуйте переводы строк в теги HTML <br> для отображения в браузере:
<?php
$text = "Line one\nLine two\nLine three";
echo nl2br($text);
// Line one<br />\nLine two<br />\nLine threeФорматирование строк с шаблонами
sprintf() форматирует строку с заполнителями — это удобно для создания структурированного вывода:
<?php
$name = 'Alice';
$score = 95.5;
$rank = 1;
$line = sprintf('%-10s %6.2f%% #%d', $name, $score, $rank);
echo $line;
// Alice 95.50% #1number_format()
Форматируйте числа как строки с разделителями тысяч и десятичными разделителями:
<?php
$amount = 1234567.891;
echo number_format($amount); // 1,234,568
echo number_format($amount, 2); // 1,234,567.89
echo number_format($amount, 2, ',', '.'); // 1.234.567,89 (European)
echo number_format($amount, 2, '.', ''); // 1234567.89 (no separator)Сокращение строк с многоточием
Безопасно сокращайте длинный текст с многоточием для отображения:
<?php
function truncate(string $text, int $max, string $suffix = '...'): string {
if (mb_strlen($text) <= $max) return $text;
return mb_substr($text, 0, $max - mb_strlen($suffix)) . $suffix;
}
echo truncate('The quick brown fox', 15);
// The quick br...Обращение строки
Обращайте строку с помощью strrev() (работает с байтами, но не учитывает многобайтные символы):
<?php
echo strrev('Hello'); // olleH
echo strrev('12345'); // 54321
// Palindrome check
function isPalindrome(string $s): bool {
$s = strtolower(preg_replace('/[^a-zA-Z]/', '', $s));
return $s === strrev($s);
}
var_dump(isPalindrome('racecar')); // true
var_dump(isPalindrome('PHP')); // falseПовторение и заполнение строк
Создавайте повторяющиеся шаблоны строк для форматирования или дополнения:
<?php
// Build a progress bar
function progressBar(int $percent, int $width = 20): string {
$filled = (int) round($percent / 100 * $width);
$empty = $width - $filled;
return '[' . str_repeat('#', $filled) . str_repeat('-', $empty) . "] $percent%";
}
echo progressBar(65); // [#############-------] 65%Быстрая проверка
Какая функция вставляет символ-разделитель через каждые N символов в строке?
Повторение: подстроки и дополнение
Основные функции:
substr($str, start, length)— извлечение по позицииmb_substr()— извлечение с поддержкой многобайтных символовstr_pad()— дополнение до нужной длиныwordwrap()— перенос по границам словchunk_split()— вставка разделителя через каждые N символовsprintf()— создание форматированной строки
Часто задаваемые вопросы
Урок «Функции подстрок и дополнения» бесплатный?
Да — полный текст урока «Функции подстрок и дополнения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Функции подстрок и дополнения»?
Извлекайте и форматируйте фрагменты строк с помощью substr, str_pad и wordwrap Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Функции подстрок и дополнения»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы строк и конкатенация
- Поиск и замена в строках
- Функции подстрок и дополнения
- Разделение и объединение строк