str_replace留下空白PHP

时间:2017-03-13 15:39:29

标签: php str-replace

这是我要改变的变量:

$last = 'Some string 1 foobar'

和我的替换声明

$last = str_replace(['1', '2'], '', $last);

最后输出

Some string   foobar

如何消除字符串'字符串'之间的空格。和' foobar',我最初的想法是在str_replace语句中使用''替换也会删除空格,但它不会。

澄清我想知道如何制作Some string foobar而不是Some stringfoobar

2 个答案:

答案 0 :(得分:1)

基于正则表达式的方法对于这样的东西更灵活:

<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/\d\s?/', '', $subject));

上述代码的输出为:string(18) "Some string foobar"

这是做什么的,它是如何工作的?它取代了模式,而不是固定的文字字符串。这里的模式是:任何数字(\d)以及一个潜在的现有空白字符(\s?)。

另一种不同的替代方法是:

<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/(\s\d)+\s/', ' ', $subject));

这一个替换任何序列,其中包含一个或多个前面带有空格((\s\d)+)的数字,以及一个空格字符旁边的单个空格。

答案 1 :(得分:0)

如果您不想使用preg_replace,那么您可以执行以下操作。

$result = 'Some string 1 foobar';
$result = str_replace(['1', '2'], '', $result);
$result = str_replace('  ', ' ', $result);

但是我不得不承认我更喜欢preg_replace解决方案。虽然不确定基准。