我有以下字符串:
$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";
和$del_sub_two="KVh1ySPSzGycWyiRtYJJ";
我用作字符串中的分隔符。
当我跑:$string=trim($string,$del_sub_two);
时,结果是:
British Airways BAGvpWdLarbvapDA0xYf9B7
但它应该是:
British Airways BAGvpWdLarbvapDA0xYf9B71
我需要它从任何特定字符串的末尾删除$del_sub_two
字符串,为什么要删除字符串末尾的额外字符?
答案 0 :(得分:2)
好的,阅读你对其他答案的评论,你想删除字符串KVh1ySPSzGycWyiRtYJJ
,只要它在任何其他字符串的末尾。使用正则表达式。
$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";
$string = preg_replace('/KVh1ySPSzGycWyiRtYJJ$/', '', $string);
答案 1 :(得分:1)
trim()
不会删除特定字符串,它会删除您在目标字符串的开头和结尾传入的第二个参数中指定的字符串中的所有项目。因为您在第二个参数中传入了值为1
的字符串,所以1
的所有实例都将从要修剪的字符串的开头和结尾删除。
例如,如果您将大写B
添加到修剪函数的第二个参数,它将从B
中删除British Airways
。
示例:
$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";
$del_sub_two="KVh1ySPSzGycWyiRtYJJ";
$string=trim($string, 'BKVh1ySPSzGycWyiRtYJJ');
// Echos "ritish Airways BAGvpWdLarbvapDA0xYf9B7"
echo $string;
答案 2 :(得分:0)
替代解决方案:
$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";
$del_sub_two="KVh1ySPSzGycWyiRtYJJ";
$pos = strpos($string, $del_sub_two);
if($pos === FALSE) {
echo "not found";
} else {
// will output: British Airways BAGvpWdLarbvapDA0xYf9B71
echo substr($string, 0, $pos);
}