Удаление последнего символа в строке через PHP

Все передаваемые в переменных значения имеют разный вид хранения и распределения – речь идёт о числах, объектах, массивах и прочих видах размещения информации, таких как строках. В роли последней может выступать комбинация любых символов, включая цифры, заключённая в кавычки. С ней можно производить различные действия, одним из самых простых среди которых является удаление знаков.

С помощью rtrim();

Данный вариант – отличный способ, в PHP 7 не требующий написания собственной функции. Предполагается, что при написании кода программист сам укажет, какой знак должен быть удалён. То есть, привязка идёт не к позиции символа относительно начала слова, а к нему самому.

Очевидный минус – исчезновение всех одинаковых знаков в строке, однако этот недостаток нивелируется, если предложенный к удалению символ встречается в тексте, предложении, слове всего один раз.

К плюсам можно отнести несложный синтаксис и, соответственно, лёгкую запоминаемость:

rtrim($string, $symbols);

С помощью регулярных выражений

Эффект, который даст код, основанный на регулярных выражениях, примерно таков же, как в вышерассмотренном случае. Однако следует помнить, что скорость выполнения у regexвсегда медленнее, чем у функций.

Использование этого метода в небольшом количестве не приведёт к ощутимым задержкам, но всё же нежелательно. Особенно не рекомендуется задействовать решение в продакшн-коде, но для понимания принципа regexон вполне подойдёт.

Альтернативный вариант

Если неизвестно, какой именно знак окажется последним, можно также использовать регулярные выражения. Но куда лучше обратить внимание на следующий раздел статьи – содержащийся в нём код выполнится быстрее.

С помощью substr();

Когда неизвестен конкретный знак, достаточно информации о том, что он стоит в конце строки. Для его удаления можно использовать substr();, имеющий простое написание:

substr($string , $offset, $length);

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

Примеры кода

Через rtrim();

<?
$string = «В чащах юга жил-был цитрус… — да, но фальшивый экземпляръ!»;
$updated_string = rtrim($string, «!»);
print $string.»<br>».$updated_string;
?>

В итоге исчезнет восклицательный знак, выведутся две строки: оригинальная и изменённая. Обработка с привязкой к самому символу, но не к его месту.

Через regex

Первый вариант:

<?
$string = «В чащах юга жил-был цитрус… — да, но фальшивый экземпляръ!»;
$updated_string = preg_replace(‘/\!$/’, », $string);
print $string.»<br>».$updated_string;
?>

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

<?
$string = «В чащах юга жил-был цитрус… — да, но фальшивый экземпляръ!»;
$updated_string = preg_replace(‘/.$/’, », $string);
print $string.»<br>».$updated_string;
?>

Через substr();

Использование substr();настолько же легко:

<?
$string = «В чащах юга жил-был цитрус… — да, но фальшивый экземпляръ!»;
$updated_string = substr($string, 0, -1);
print $string.»<br>».$updated_string;
?>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *