在最后一个反斜杠出现后获取字符串的一部分

时间:2013-12-19 20:05:09

标签: php string explode strstr

如何获取没有字符串最后部分的所有字母,例如:

$string = 'namespace\name\driver\some\model';

预期输出为:

namespace\name\driver\some\

5 个答案:

答案 0 :(得分:1)

使用explode()将字符串拆分为\,然后implode()加入新字符串:

echo implode('\\', array_slice(explode('\\', $string), 0, -1));

或者使用正则表达式替换最后一个斜杠之后的所有内容:

echo preg_replace('#[^\\\\]*$#', '', $string);

输出:

namespace\name\driver\some

答案 1 :(得分:1)

如果你需要带一个子串,不需要搞乱爆炸/内爆/阵列......

尝试这个基本的东西:

$string = substr($string, 0, strrpos($string, '\\') + 1);

答案 2 :(得分:1)

假设您使用的是php,

使用此,

<?php
$string ='namespace\name\driver\some\model';
$output= implode('\\', array_slice(explode('\\', $string), 0, -1));
?>

答案 3 :(得分:1)

您可以尝试使用正则表达式吗? '* \\'

答案 4 :(得分:1)

从右边找到斜线的位置 - 你必须用额外的\

来逃避它
<?php
$string = "namespace\name\driver\some\model";
$lastslash = strrpos($string,"\\") + 1;
$new_string = substr($string,0,$lastslash);
echo "new string - ".$new_string." ".$lastslash;    
?>