Мне нужно удалить последние два символа из строки, если это -C. Для этого я использую следующий код. Это не приводит к надлежащему результату в некоторых ситуациях.
например 1: правильный результат
$str = "215-RTST-C";
echo chop($str,"-C");
например 2: неправильный результат
$str = "210-ADBC-C";
echo chop($str,"-C");
Может ли кто-нибудь помочь мне отслеживать проблему?
echo preg_replace('/-C$/', '', $str);
должно сработать.
rtrim()
chop()
aka rtrim()
не подходит, поскольку он не подчиняется порядку символов и не имеет возможности ограничить количество символов, которые он chop()
s.
Для чего-то подобного вы можете использовать substr. Это сделает то, что вам нужно:
$str = "215-RTST-C";
if (substr($str, -2) == '-C')
$str = substr($str, 0, -2);
echo $str;
Изменение: syck answer более эффективен, я не думал использовать preg_replace.