修剪删除字符串末尾的额外字符

时间:2016-04-22 21:23:34

标签: php

我有以下字符串:

$string="British Airways BAGvpWdLarbvapDA0xYf9B71KVh1ySPSzGycWyiRtYJJ";

$del_sub_two="KVh1ySPSzGycWyiRtYJJ";我用作字符串中的分隔符。

当我跑:$string=trim($string,$del_sub_two);时,结果是:

British Airways BAGvpWdLarbvapDA0xYf9B7

但它应该是:

British Airways BAGvpWdLarbvapDA0xYf9B71

我需要它从任何特定字符串的末尾删除$del_sub_two字符串,为什么要删除字符串末尾的额外字符?

3 个答案:

答案 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);
}