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()
вызов функции, "&"
).
Чтобы получить желаемый результат, вы должны вызвать 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