Php три первых символа

substr

Возвращает часть string указанную параметрами offset и length .

Parameters

Если offset неотрицательно, возвращаемая строка будет начинаться с позиции offset в string , считая с нуля. Например, в строке « abcdef » символ в позиции 0 — это « a », символ в позиции 2 — « c » и т. Д.

Если offset отрицательно, возвращаемая строка будет начинаться с символа offset от конца string .

Если длина string меньше, чем символов offset , будет возвращена пустая строка.

Пример # 1 Использование отрицательного offset

 $rest = substr("abcdef", -1); // returns "f" $rest = substr("abcdef", -2); // returns "ef" $rest = substr("abcdef", -3, 1); // returns "d" ?>

Если задана положительная length , возвращаемая строка будет содержать не более length символов, начиная со offset (в зависимости от длины string ).

Если указана length и она отрицательна, то такое количество символов будет пропущено в конце string (после того, как начальная позиция была вычислена при отрицательном offset ). Если offset обозначает позицию этого усечения или за его пределами, будет возвращена пустая строка.

Если length задана и равна 0 , будет возвращена пустая строка.

Если length опущена или равна null , будет возвращена подстрока, начинающаяся со offset

Пример # 2 Использование отрицательной length

 $rest = substr("abcdef", 0, -1); // returns "abcde" $rest = substr("abcdef", 2, -1); // returns "cde" $rest = substr("abcdef", 4, -4); // returns ""; prior to PHP 8.0.0, false was returned $rest = substr("abcdef", -3, -1); // returns "de" ?>

Return Values

Возвращает извлеченную часть string или пустую строку.

Changelog

Version Description
8.0.0 length теперь может быть нулевой. Когда для length явно задано значение null , функция возвращает подстроку, заканчивающуюся в конце строки, если ранее она возвращала пустую строку.
8.0.0 Функция возвращает пустую строку, в которой ранее возвращалось false .

Examples

Пример # 3 Основные зиЬзЬг () Использование

 echo substr('abcdef', 1); // bcdef echo substr("abcdef", 1, null); // bcdef; prior to PHP 8.0.0, empty string was returned echo substr('abcdef', 1, 3); // bcd echo substr('abcdef', 0, 4); // abcd echo substr('abcdef', 0, 8); // abcdef echo substr('abcdef', -1, 1); // f // Accessing single characters in a string // can also be achieved using "square brackets" $string = 'abcdef'; echo $string[0]; // a echo $string[3]; // d echo $string[strlen($string)-1]; // f ?>

Пример # 4 Поведение приведения типа substr ()

 class apple < public function __toString( ) < return "green"; > > echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL; echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL; echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL; echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL; echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL; echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL; echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL; ?>

Выводится приведенный выше пример:

1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200' 

Пример # 5 Неверный диапазон символов

Если запрошен недопустимый диапазон символов, substr () возвращает пустую строку, начиная с PHP 8.0.0; раньше вместо этого возвращалось false .

Вывод приведенного выше примера в PHP 8:

Вывод вышеприведенного примера в PHP 7:

Источник

substr

Возвращает подстроку строки string , начинающейся с start символа по счету и длиной length символов.

Список параметров

Входная строка. Должна содержать хотя бы один символ.

Если start неотрицателен, возвращаемая подстрока начинается с позиции start от начала строки, считая от нуля. Например, в строке ‘abcdef‘, в позиции 0 находится символ ‘a‘, в позиции 2 — символ ‘c‘, и т.д.

Если start отрицательный, возвращаемая подстрока начинается с позиции, отстоящей на start символов от конца строки string .

Если string меньше либо содержит ровно start символов, будет возвращено FALSE .

Пример #1 Использование отрицательного параметра start

$rest = substr ( «abcdef» , — 1 ); // возвращает «f»
$rest = substr ( «abcdef» , — 2 ); // возвращает «ef»
$rest = substr ( «abcdef» , — 3 , 1 ); // возвращает «d»
?>

Если length положительный, возвращаемая строка будет не длиннее length символов, начиная с параметра start (в зависимости от длины string ).

Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если start отрицателен). Если при этом позиция начала подстроки, определяемая аргументом start , находится в отброшенной части строки или за ней, возвращается false.

Если указан параметр length и является одним из 0, FALSE или NULL , то будет возвращена пустая строка.

Если параметр length опущен, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром start и длящейся до конца строки.

Пример #2 Использование отрицательного параметра length

$rest = substr ( «abcdef» , 0 , — 1 ); // возвращает «abcde»
$rest = substr ( «abcdef» , 2 , — 1 ); // возвращает «cde»
$rest = substr ( «abcdef» , 4 , — 4 ); // возвращает false
$rest = substr ( «abcdef» , — 3 , — 1 ); // возвращает «de»
?>

Возвращаемые значения

Возвращает извлеченную часть строки, или FALSE в случае возникновения ошибки или пустую строку string .

Список изменений

Версия Описание
5.2.2 — 5.2.6 Если параметр start указывает на позицию с отрицательной обрезкой, возвращается FALSE . Другие версии возвращают строку с начала.

Примеры

Пример #3 Базовое использование substr()

echo substr ( ‘abcdef’ , 1 ); // bcdef
echo substr ( ‘abcdef’ , 1 , 3 ); // bcd
echo substr ( ‘abcdef’ , 0 , 4 ); // abcd
echo substr ( ‘abcdef’ , 0 , 8 ); // abcdef
echo substr ( ‘abcdef’ , — 1 , 1 ); // f

// Получить доступ к отдельному символу в строке
// можно также с помощью «квадратных скобок»
$string = ‘abcdef’ ;
echo $string [ 0 ]; // a
echo $string [ 3 ]; // d
echo $string [ strlen ( $string )- 1 ]; // f

Пример #4 substr() и приведение типов

class apple public function __toString () return «green» ;
>
>

echo «1) » . var_export ( substr ( «pear» , 0 , 2 ), true ). PHP_EOL ;
echo «2) » . var_export ( substr ( 54321 , 0 , 2 ), true ). PHP_EOL ;
echo «3) » . var_export ( substr (new apple (), 0 , 2 ), true ). PHP_EOL ;
echo «4) » . var_export ( substr ( true , 0 , 1 ), true ). PHP_EOL ;
echo «5) » . var_export ( substr ( false , 0 , 1 ), true ). PHP_EOL ;
echo «6) » . var_export ( substr ( «» , 0 , 1 ), true ). PHP_EOL ;
echo «7) » . var_export ( substr ( 1.2e3 , 0 , 4 ), true ). PHP_EOL ;
?>

Результат выполнения данного примера:

1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) false 6) false 7) '1200'

Ошибки

Возвращает FALSE в случае ошибки.

Смотрите также

  • strrchr() — Находит последнее вхождение символа в строке
  • substr_replace() — Заменяет часть строки
  • preg_match() — Выполняет проверку на соответствие регулярному выражению
  • trim() — Удаляет пробелы (или другие символы) из начала и конца строки
  • mb_substr() — Возвращает часть строки
  • wordwrap() — Переносит строку по указанному количеству символов
  • Посимвольный доступ и изменение строки

Источник

PHP: substr и мощные альтернативы, чтобы вырезать часть строки

Поговорим о том, как обрезать строку в PHP. Функция substr в предназначена для получения части строки. Она выделяет подстроку из переданной строки и возвращает её. Для этого нужно указать строку, порядковый номер символа, начиная с которого нужно вырезать строку, порядковый номер символа, до которого мы верезаем подстроку.

Обратите внимание, что substr неправильно работает с многобайтовыми кодировками, поэтому мы будем использовать mb_substr, которая работает с ними корректно. Об этой проблеме немного ниже.

mb_substr( string $string, int $start, int|null $length = null, string|null $encoding = null ): string
  • $string — строка, из которой мы будем вырезать подстроку
  • $start — символ, с которого мы будем вырезать подстроку
  • $length — сколько символов мы будем вырезать (по умолчанию будем вырезать все оставшиеся)
  • $encoding — кодировка

Теперь перейдем к примерам.

Получаем строку начиная с определенного символа

$url = 'https://phpstack.ru/admin/'; $result = mb_substr($url, 8); echo $result; // результат: phpstack.ru/admin/

Мы вырезали первые 8 символов из строки, содержащей URL адрес.

Получаем определенное количество символов

Теперь давайте вырежем еще и «/admin/» в конце.

Мы бы могли сделать это указав количество символов, которое нужно взять, оно равно количеству символов в домене, их 11

$url = 'https://phpstack.ru/admin/'; $result = mb_substr($url, 8, 11); // возьмем 11 символов начиная с 8-го echo $result; // результат: phpstack.ru

Вырезаем символы с конца

Что если мы не знаем количества символов в домене, но знаем что нужно вырезать строку «/admin/», длина которой составляет 7 символов? Иными словами нам нужно вырезать с конца.

В таком случае нужно указать отрицательное число:

$url = 'https://phpstack.ru/admin/'; $result = mb_substr($url, 8, -7); // удаляем 8 символов с начала и 7 символов с конца echo $result; // результат: phpstack.ru

Получаем несколько последних символов

Что если нам нужно вернуть наоборот только 7 последних символов? Тогда код будет следующим:

$url = 'https://phpstack.ru/admin/'; $result = mb_substr($url, -7); // Получаем 7 символов с конца, остальное удаляем echo $result; // результат: /admin/

Получаем первый символ строки

$url = 'https://phpstack.ru/admin/'; $result = mb_substr($url, 0, 1); // Начиная с 0 берем 1 символ echo $result; // результат: h

Получаем последний символ строки

$url = 'https://phpstack.ru/admin/'; $result = mb_substr($url, -1); // начинаем на 1 символ относительно конца echo $result; // результат: /

Получение подстроки по регулярному выражению

Если вам не хватает возможностей substr, возможно вам необходим более мощный инструмент: preg_match — эта функция позволяет получить подстроки по регулярному выражению.

Проблема при работе с многобайтовыми кодировками.

$url = 'привет'; $result1 = mb_substr($url, 3); // удаляем 3 символа с начала $result2 = substr($url, 3); // удаляем 3 символа с начала var_dump($result1); // вет var_dump($result2); // �ивет

Что случилось? Почему в первом случае, где мы использовали mb_substr все сработало хорошо, а во втором случае вернулся какой-то битый символ?

Дело в том, что в UTF-8 кириллица кодируется 2 байтам, вместо одного. substr считает, что символ равен байту и поэтому вырезает 3 байта с начала. Таким образом она вырезала букву «П», и только половину буквы «Р». В общем вы поняли: всегда используйте mb_substr когда работаете с текстом, который потенциально может содержать многобайтовые символы.

Продвинутая работа со строками

Если вы часто работаете со строками, вам пригодится это расширение: symfony/string

С его помощью вы сможете легко вырезать строки. Взгляните на несколько примеров:

// returns a substring which starts at the first argument and has the length of the // second optional argument (negative values have the same meaning as in PHP functions) u('Symfony is great')->slice(0, 7); // 'Symfony' u('Symfony is great')->slice(0, -6); // 'Symfony is' u('Symfony is great')->slice(11); // 'great' u('Symfony is great')->slice(-5); // 'great' // reduces the string to the length given as argument (if it's longer) u('Lorem Ipsum')->truncate(3); // 'Lor' u('Lorem Ipsum')->truncate(80); // 'Lorem Ipsum' // the second argument is the character(s) added when a string is cut // (the total length includes the length of this character(s)) u('Lorem Ipsum')->truncate(8, '…'); // 'Lorem I…' // if the third argument is false, the last word before the cut is kept // even if that generates a string longer than the desired length u('Lorem Ipsum')->truncate(8, '…', false); // 'Lorem Ipsum'

Источник

Читайте также:  Css display grid выравнивание
Оцените статью