Довольно часто возникает вопрос, как удалить последний символ из строки в PHP-скрипте? Например, вам мешает запятая, точка или восклицательный знак в конце предложения или слэш в конце URL-адреса. Тут мы познакомимся с 4-мя способами удаления последнего символа с помощью различных функций PHP.
Способ 1. Используем функцию rtrim()
Функция rtrim()
предназначена для удаления символа справа, т.е. как раз в конце строки. Она принимает 2 параметра:
- строку, в которой вам мешает символ или даже несколько символов;
- строку, в которой вы указываете символы, которые вам нужно удалить.
Синтаксис:
1 | rtrim($string, $character); |
Несколько примеров использования функцию rtrim()
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php //Первая строка $str1 = "Hello World!"; echo rtrim($str1, "!"); // Вывод: Hello World echo "<br>"; // Вторая строка - несколько символов $str2 = "red, green, blue, "; $strChanged = rtrim($str2, ", "); $str2 = "red, green, blue, "; $strChanged = rtrim($str2, ", "); echo $str2.=" are my favorite colors.<br>"; // Вывод: red, green, blue, are my favorite colors. echo $strChanged.=" are my favorite colors.<br>"; // Вывод: red, green, blue are my favorite colors. // Третья строка - адрес сайта $url = 'https://mysite.com/about-us/'; echo rtrim($url, '/'); // Вывод: https://mysite.com/about-us ?> |
Кстати, если вы не указали второй параметр, то функция rtrim() удаляет следующие символы:
- " " (ASCII
32
(0x20
)), обычный пробел. - "\t" (ASCII
9
(0x09
)), символ табуляции. - "\n" (ASCII
10
(0x0A
)), символ перевода строки. - "\r" (ASCII
13
(0x0D
)), символ возврата каретки. - "\0" (ASCII
0
(0x00
)),NULL
-байт. - "\v" (ASCII
11
(0x0B
)), вертикальная табуляция.
То есть без второго параметра мы удаляем пробелы и переводы строки, например, так:
1 2 3 4 5 6 7 8 9 10 11 | <?php $gaps = "We have gaps... "; //длина строки с пробелами 18 echo strlen($gaps).'<br>'; $gapsTrim = rtrim($gaps); //длина строки без пробелов 15 echo strlen($gapsTrim); ?> |
Кстати, если у вас под рукой нет локального сервера или Докера для теста php-кода, то вы можете протестировать свой код в онлайн-песочнице.
Способ 2. Используем функцию substr_replace()
Вы можете использовать PHP-функцию substr_replace() для того, чтобы удалить последний символ из строки. Для этого по сути этой функции нужно указать пустую строку в качестве замены и -1 в качестве последнего параметра, что означает "последний символ".
Синтаксис:
1 | substr_replace($string ,"", -1); |
Пример:
1 2 3 4 5 6 | <?Php $string = "Hello World!"; $stringReplaced = substr_replace($string ,"",-1); echo $string . "<br>" ; //Hello World! echo $stringReplaced . "<br>"; // Hello World ?> |
Способ 3. Используем функцию substr()
Следующий способ удаления последнего символа из строки основан на использовании PHP-функции substr
().
Синтаксис:
1 | substr($string, 0, -1); |
Пример:
1 2 3 4 5 6 | <?php $string = "https://mysite.com/about-us/"; echo "<p>До: $string </p>"; //До: https://mysite.com/about-us/ echo "<p>После: ".substr($string, 0, -1) ."</p>"; //После: https://mysite.com/about-us ?> |
Принцип работы функции основан на том, что мы указываем в качестве параметров строку, нулевой символ в качестве начала и -1 символ в качестве конца возвращаемой подстроки.
Способ 4. Используем функцию mb_substr()
Аналогичные параметры указываются для удаления последнего символа из строки в функции mb_substr()
.
Синтаксис:
1 | mb_substr($string, 0, -1); |
Пример:
1 2 3 4 5 6 7 | <?php $string = "https://mysite.com/about-us/"; echo "<p>До: $string </p>"; //До: https://mysite.com/about-us/ echo "<p>После: ".mb_substr($string, 0, -1) ."</p>"; //После: https://mysite.com/about-us ?> |
Как вы видите, синтакис и результат такой же, как и при использовании функции substr()
.
Uncaught Error: Call to undefined function mb_substr()
1 | extension=php_mbstring.dll |
Надеюсь, вы уже воспользовались одним из приведенных способов, чтобы удалить последний символ из строки в вашем php-коде.