如何从php中的字符串中删除某些字符

时间:2016-05-04 19:21:32

标签: php str-replace

为了创建面包屑,我有一个字符串如下:

$crumbs = explode("/", $_SERVER["REQUEST_URI"]);

这会生成以下输出:

/ sfm?dir=uploads / sfm / c4ca4238a0b923820dcc509a6f75849b / folder1 / folder2 /

如何从输出中消除这些第一个字符:

/ sfm?dir=uploads / sfm /

以便以哈希

开头

5 个答案:

答案 0 :(得分:4)

有几种简单的方法可以解决这个问题。

考虑在爆炸之前更换

首先可以在str_replace()功能之前简单地执行explode()来电:

# Explicitly replace your input
$input = str_replace($_SERVER["REQUEST_URI"],'/sfm?dir=uploads/sfm/','');
# Then explode as expected
$crumbs = explode("/", $input);

切掉前两个元素

另一种选择是简单地切割原始数组并通过array_slice()函数从中移除前两个元素:

# Explode your string into an array
$crumbs = explode("/", $_SERVER["REQUEST_URI"]);
# Trim off the first two elements of the array
$crumbs = array_slice($crumbs,2)

答案 1 :(得分:2)

使用str_replace()尝试以下内容:

$input = '/ sfm?dir=uploads / sfm / c4ca4238a0b923820dcc509a6f75849b / folder1 / folder2 /';
$replace = '/ sfm?dir=uploads / sfm /';
echo str_replace($replace, '', $input);

使用您的代码,以下内容应该有效:

$crumbs = $_SERVER["REQUEST_URI"];
$replace = '/ sfm?dir=uploads / sfm /';
$crumbs = str_replace($replace, '', $crumbs);
$crumbs = explode("/", $crumbs);

可在此处找到工作演示:https://3v4l.org/QOm4S

答案 2 :(得分:1)

使用explode你创建了一个数组,所以我会用我想要显示的数组数据创建一个字符串或另一个数组

$crumbs = explode("/", $_SERVER["REQUEST_URI"]);

//For string

$breadcrumbs = $crumbs[2].$crumbs[3].$crumbs[4];

答案 3 :(得分:1)

在爆炸字符串之前,不需要删除第一个字符。您可以对数组进行切片以删除不需要的网址部分。

示例代码:

$crumbs = explode('/', '/sfm?dir=uploads/sfm/c4ca4238a0b923820dcc509a6f75849b/folder1/folder2/');

$result = array_slice($crumbs, 3);

// Do something with result.

即使网址的第一部分以其他内容开头,您的代码仍然有用。

希望这有帮助

答案 4 :(得分:1)

或者您可以在爆炸主字符串时排除此字符串:

$crumbs = explode("/", $_SERVER["REQUEST_URI"]);
$new_string = "";
for ($i = 0 ; $i < count ($crumbs) ; $i++){
    if ($crumbs[$i] != 'sfm?dir=uploads'){
        $new_string .= '/' . $crumbs[$i];
    }
}
return $new_string; //This is your your string