PHP:
Извлечение подстрок
Как это сделать:
PHP предлагает несколько функций для извлечения подстрок. Давайте рассмотрим substr
, mb_substr
и strstr
.
$string = "Hello, World! Programming is fun.";
// Извлекаем 'World' используя substr.
echo substr($string, 7, 5); // Вывод: World
// Пример строки UTF-8 с mb_substr для многобайтовых символов.
$utf8String = "こんにちは世界";
echo mb_substr($utf8String, 5, 2); // Вывод: 世
// Получаем все после запятой с помощью strstr.
echo strstr($string, ","); // Вывод: , World! Programming is fun.
Глубже
В начале времен PHP основным способом отделения части строки была функция substr()
. Однако у substr()
было (и до сих пор есть) ограничение: она не очень хорошо работает с неанглийскими символами (например, японскими или арабскими).
На сцену выходит mb_substr()
, безопасный для многобайтных данных аналог, который учитывает символы из различных кодировок. Он гарантирует, что когда вы вытаскиваете подстроку, вы не разрываете символ на середине байта, что критически важно для международных приложений.
strstr()
, с другой стороны, находит первое вхождение подстроки и дает вам все, что идет после неё. Есть также strchr()
, который является псевдонимом strstr()
.
В то время как substr()
и mb_substr()
позволяют вам точно указать, с какого места начать и сколько взять, strstr()
больше похож на инструмент “найди и дай мне остальное”.
Смотрите также
Вот некоторые дополнительные материалы, если вы хотите узнать больше:
- Официальная документация PHP по функциям работы со строками: https://www.php.net/manual/ru/ref.strings.php
- Глубокое погружение в функции работы с многобайтными строками PHP: https://www.php.net/manual/ru/book.mbstring.php
- Больше о кодировании символов и о том, почему это важно: http://kunststube.net/encoding/