【发布时间】:2014-08-01 04:20:11
【问题描述】:
我需要在任何换行符的开头替换一个空格。我正在使用 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+/
【问题讨论】:
-
不.. 好主意。我正在这样做:
$str=preg_replace('/^\s+/', '', $_POST['myValue']);,然后在我需要的地方调用$str。 -
ltrim()? ...... -
嗯。如果可行,我愿意尝试使用它。谢谢。我会让你知道会发生什么。
-
@Deadooshka,不。 :( 我得到同样的东西,空格。
-
这意味着
$str可能包含编码空格。 、%20等
标签: php