Справочники, инструменты, документация

PHP: Как обрезать строку по символу с примерами

Как обрезать строку по символу в PHP!? Нам нужно разобраться. Что это означает обрезать строку по символу! И какую часть обрезанной строки вам нужно!?

PHP Обрезать строку по символу с помощью explode

Нам потребуется для иллюстрации обрезки строки по символу какая-то произвольная строка с каким-то наполнением:

$string = "12345678910|10987654321";

Для примера, возьмем символ, который расположен примерно посередине -> |, создаем такую запись:

$new_array = explode("|" , $string);

Если нам потребуется первая часть, то используем current:

echo current($new_array);
// 12345678910

Если вам потребуется вторая часть, то используем end. Здесь нужно дополнение - если символ 1, то end будет показывать второй элемент, если символ в строке повторяется несколько раз, то end покажет последнюю ячейку массива. В данном случае разделительный элемент строки в единственном числе, поэтому нам предстанет вторая часть:

echo end($new_array);
// 10987654321

Обрезать строку по пробелу

$example = 'Это специальная строка с пробелами для обрезки по пробелу!';

После этого, применим к данной строке функцию explode и выведем с помощь print_r:

print_r(explode(' ' , $example));

Получим массив:

Array
(
[0] => Это
[1] => специальная
[2] => строка
[3] => с
[4] => пробелами
[5] => для
[6] => обрезки
[7] => по
[8] => пробелу!
)

Как обрезать строку по последнему пробелу

Давайте разберем несколько примеров обрезки строки про пробелу. Пусть это будет последний пробел строки!

$example = 'Это специальная строка с пробелами для обрезки по пробелу!';

Разбили её в массив и далее поместим её в переменную:

$arr = explode(' ' , $example);

Нам понадобится один из способов обрезки массива используем array_slice.

$arr = array_slice ($arr , 0, -1);

Далее превратим массив обратно в строку implode:

$str = implode('' , $arr);
<?
$example = 'Это специальная строка с пробелами для обрезки по пробелу!';
$arr = explode(' ' , $example);
$arr = array_slice ($arr , 0, -1);
$str = implode('' , $arr);
echo $str;
?>

Как обрезать строку по первому пробелу

$example = 'Это специальная строка с пробелами для обрезки по пробелу!';

Опять нам потребуется функция explode с delimiter-ом = символ - пробел:

$arr = explode(' ' , $example);

Вам нужно знать теорию массивов... и чтобы обрезать по первому пробелу... нужно просто обратится к первой ячейке полученного массива:

$arr[0]

Либо обратиться с помощью current:

echo current[$arr];
<?
$example = 'Это специальная строка с пробелами для обрезки по пробелу!';
$arr = explode(' ' , $example);
echo current[$arr];
// Это
?>

Обрезать по n-ому символу пробел

$example = 'Это специальная строка с пробелами для обрезки по пробелу!';

Массив:

$arr_4 = $arr_3 = $arr_2 = $arr = explode(' ' , $example);

По второму пробелу:

$arr_2 = array_slice ($arr_2 , 0, -2);
$arr_2 = implode(' ' , $arr_2 );
// Это специальная строка с пробелами для обрезки

Обрезать с конца и оставить конечную часть

Цифру 0 убираем в array_slice. Обрезать по второму пробелу с конца:

<?
$example = 'Это специальная строка с пробелами для обрезки по пробелу!';
$arr_4 = explode(' ' , $example);
$arr_4 = array_slice ($arr_4 , -2);
$str_4 = implode(' ' , $arr_4 );
echo $str_4 ;
?>
// по пробелу!

Обрезать по n-ому(3) с конца

<?
$example = 'Это специальная строка с пробелами для обрезки по пробелу!';
$arr_5 = explode(' ' , $example);
$arr_5 = array_slice ($arr_5 , -3);
$str_5 = implode(' ' , $arr_5 );
echo $str_5 ;
?>
// обрезки по пробелу!

Обрежем строку по символу с начала строки

Прежде чем продолжать нам потребуются какие-то условия, например, нам нужно обрезать строку по 5 символу, здесь число не важно, и нам опять понадобится строка:

$string = "12345678910|10987654321";

Поскольку и дальше будем использовать это число для обрезки по символу, то присвоим это значение произвольной переменной:

$num_elem = 5;

Далее нам понадобится функция substr и вот такая конструкция:

$first = substr($string , 0, $num_elem);
echo $first;
// 12345

Обрежем строку по символу с начала строки, показать справа

Как мы уже сказали выше, что если нам требуется обрезать строку сначала по символу и выкинуть эту часть, отставив строку с конца... если вы не обратили внимание на строку. то рекомендую сейчас на неё внимательность посмотреть и на первый результат тоже...

$string = "12345678910|10987654321";
echo substr($string , 5);
// 678910|10987654321

Обрежем строку по символу с конца строки, показать слева

Теперь предположим. что нам требуется обрезать строку по символу с конца и показать левую часть, выкинув обрезанную часть:

echo substr($string , 0, - 5);
// 12345678910|109876

Обрежем строку по символу с конца строки, показать справа

Опять обрезаем строку справа, и эту часть обрезанной строки и покажем. Обрезать строку по символу № 5 с конца строки - показать правую часть:

echo substr($string , - 5);
// 54321