PHP字符串从另一个字符串中提取

时间:2011-11-23 04:13:22

标签: php string delimiter extraction

我有一个这样的字符串:

S="str1|str2|str3"

我想从S中提取另一个只包含

的字符串
t="str1|str2"

其中|是分隔符

谢谢

6 个答案:

答案 0 :(得分:2)

$string = "str1|str2|str3";
$pieces = explode( '|', $string); // Explode on '|'
array_pop( $pieces); // Pop off the last element
$t = implode( '|', $pieces); // Join the string back together with '|'

或者,使用字符串操作:

$string = "str1|str2|str3";
echo substr( $string, 0, strrpos( $string, '|'));

Demo

答案 1 :(得分:0)

implode("|",  array_slice(explode("|", $s), 0, 2));

不是一个非常灵活的解决方案,但适用于您的测试用例。

或者,您可以使用explode()的第三个参数limit,如下所示:

implode("|",  explode("|", $s, -1));

答案 2 :(得分:0)

$s = 'str1|str2|str3';
$t = implode('|', explode('|', $s, -1));
echo $t; // outputs 'str1|str2'

答案 3 :(得分:0)

我会看看strpos functionsubstr function

这就是我要这样做的方式。

答案 4 :(得分:0)

那么,获取没有最后一个元素的相同字符串?

这有效:

print_r(implode('|', explode('|', 'str1|str2|str3', -1)));

使用具有负限制的爆炸,这样它将返回没有最后一个元素的所有字符串,然后再次对元素进行内爆。

答案 5 :(得分:0)

此示例应为您设置正确的路径

$str = "str1|str2|str3";
$pcs = explode("|", $str);
echo implode( array_slice($pcs, 0, 2), "|" );