preg_replace和可能的json问题

时间:2014-06-11 07:45:52

标签: php

我需要在任何换行符的开头替换空格。我使用JSON发送POST值并怀疑这可能与它无关。

$str='
This is a string.
   This should be left justified by removing whitespaces preceding it.
';
preg_replace('/^\s+/', '', $str);

运行它,按预期工作。当我尝试将其与POST数组一起使用时,空白仍然存在。为什么呢?

JSON是否参与其中?

修改

为了澄清一下,发送的数组不是JSON编码的,它是一个使用JSON POST的PHP数组。

我只是尝试修改我的正则表达式,至少可以验证preg_replace正在做某事。如果我执行:/\s+/,则删除所有空格。所以,我知道它有点工作。

我的正则表达式是否正确?

编辑#2

这让我发疯了。我想我只会修改我的javascript中的空白并将其称为一天,但我得到了相同的结果。

还有其他情况可以阻止此正则表达式匹配吗?

/^\s+/

2 个答案:

答案 0 :(得分:0)

这个怎么样:

$str='
This is a string.
   This should be left justified by removing whitespaces preceding it.
';
preg_replace('/^\s+/m', '', $str);

我刚刚添加了m修饰符。见http://us3.php.net/manual/en/reference.pcre.pattern.modifiers.php

答案 1 :(得分:0)

试试这个:

foreach($trim_val as $key => $value) {
    $trim_val[$key] = trim($value);
}
$json = json_encode($trim_val);

已经有人在check

给出解决方案