PHP триммерная функция обрезать лишние символы? Зачем?

Как rtrim Работа? У меня есть строка "4dbb3dca&". Я не уверен, как моя строка формируется. Я хочу позвонить rtrim('4dbb3dca&', '&')

--редактировать: & возможно $amp; специальный выпуск персонажа

Но после того, как моя строка 4dbb3dc,

Я ожидаю, что это будет 4dbb3dca,

Есть ли обходной путь? Я использовал &, но тогда rtrim ничего не делает и возвращается начальная строка. Можно ли использовать rtrim в моей ситуации? Зависит ли это от версии php?

--- редактировать ---

после некоторых исследований я понял, что хочу: хочу удалить & с помощью & в rtrim() функция. Это возможно?

4 ответа

Q1. Можно ли использовать rtrim в моей ситуации?Да, можно использовать rtrim() в вашей ситуации.

Q2. Зависит ли это от версии php?нет

Вам просто нужно использовать echo rtrim('4dbb3dca&', '&'); не & потому что второй параметр rtrim работает как ниже

Вы также можете указать символы, которые хотите вырезать, с помощью параметра character_mask. Просто перечислите всех персонажей, которых вы хотите раздеть

ДЕМО: https://3v4l.org/anFIR

Если вы воспользуетесь приведенным ниже примером, вы получите тот же результат, потому что он попытается удалить все заданные символы с правой стороны заданной строки. Для экс-

echo rtrim('4dbb3dca&;pm', '&');` // will also return 4dbb3dc

Вторая строка, которую вы указываете в rtim() содержит все дополнительные символы, которые вы хотите обрезать. Таким образом, символы обрезаются "&" а также "a" (оба действительно включены во второй параметр вашего rtrim() вызов функции, "&amp").

Чтобы получить желаемый результат, вы должны вызвать rtrim() сюда:

rtrim('4dbb3dca&', '&')

Похоже, вы пытаетесь удалить амперсанд из конца строки, возможно, в закодированном виде. rtrim не дает вам достаточно контроля, как вы видели, но вы можете сделать это с preg_replace,

echo preg_replace('/&(amp;)?$/', '', $string);

Шаблон будет соответствовать амперсанду в конце строки, за которым может следовать amp;.

Способ rtrim работает удалить последние символы на втором аргументе.

PHP разбил строку на символы и проверяет, есть ли у вас символы в конце строки.

если у вас есть два символа из списка символов rtrim удалит оба

Например:

;&apm это будет такой же результат, как &

если вы хотите удалить единственный символ амперсанда в конце строки, используйте этот код: rtrim('4dbb3dca&','&');

Чтобы узнать больше, вы можете прочитать об этом на php.net http://php.net/manual/en/function.rtrim.php

Другие вопросы по тегам