我有以下字符串:
$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";
以及我用作字符串中的分隔符$del_sub_two="KVh1ySPSzGycWyiRtYJJ";
。
当我运行: $string=trim($string,$del_sub_two);
结果是:
British Airways BAGvpWdLarbvapDA0xYf9B7
但它应该是:
British Airways BAGvpWdLarbvapDA0xYf9B71
我需要它从任何特定字符串的末尾删除$del_sub_two
字符串,为什么要删除字符串末尾的额外字符?
好的,阅读您对其他答案的评论,您希望在任何其他字符串末尾KVh1ySPSzGycWyiRtYJJ
删除字符串。使用正则表达式。
$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";
$string = preg_replace('/KVh1ySPSzGycWyiRtYJJ$/', '', $string);
trim()
不会删除特定字符串,它会删除您在从目标字符串的开头和结尾传入的第二个参数中指定的字符串中的任何项目。 由于您传入了一个字符串,其值1
在第二个参数中,因此1
的所有实例都将从要修剪的字符串的开头和结尾删除。
例如,如果将大写B
添加到 trim 函数的第二个参数,它将从 British Airways
中删除B
。
例:
$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";
$del_sub_two="KVh1ySPSzGycWyiRtYJJ";
$string=trim($string, 'BKVh1ySPSzGycWyiRtYJJ');
// Echos "ritish Airways BAGvpWdLarbvapDA0xYf9B7"
echo $string;
替代解决方案:
$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);
}