Удалить последние два символа из строки, если это -C

1

Мне нужно удалить последние два символа из строки, если это -C. Для этого я использую следующий код. Это не приводит к надлежащему результату в некоторых ситуациях.

например 1: правильный результат

$str = "215-RTST-C";
echo chop($str,"-C");

например 2: неправильный результат

$str = "210-ADBC-C";
echo chop($str,"-C");

Может ли кто-нибудь помочь мне отслеживать проблему?

Теги:

2 ответа

7
Лучший ответ
echo preg_replace('/-C$/', '', $str);

должно сработать.

rtrim() chop() aka rtrim() не подходит, поскольку он не подчиняется порядку символов и не имеет возможности ограничить количество символов, которые он chop() s.

  • 0
    Коротко и приятно .. :)
1

Для чего-то подобного вы можете использовать substr. Это сделает то, что вам нужно:

$str = "215-RTST-C";
if (substr($str, -2) == '-C')
    $str = substr($str, 0, -2);
echo $str;

Изменение: syck answer более эффективен, я не думал использовать preg_replace.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню