尝试用字符串中的+替换所有空格

时间:2013-06-20 14:35:08

标签: php regex

我正在尝试用字符串中的+'替换所有空格,但是在我执行preg_replace()之后,我得到一个空字符串作为结果。

为什么呢?我做错了什么?

$query = "hello world";
$formattedQuery = preg_replace('\s', '+', $query);
echo "formatted Query is: ".$formattedQuery;
/* output should be hello+world, but I am getting nothing / blank string outputted */

4 个答案:

答案 0 :(得分:8)

为什么不使用str_replace()

$query = "hello world";
$formattedQuery = str_replace(' ', '+', $query);
echo "formatted Query is: ".$formattedQuery;

如果您坚持使用preg_replace(),请将第一个参数转换为正则表达式:

$query = "hello world";
$formattedQuery = preg_replace('/\s+/', '+', $query);
echo "formatted Query is: ".$formattedQuery;

答案 1 :(得分:4)

如果您正在使用URL上的数据,那么您实际需要的是urlencode而不是替换空格

$query = "hello world";
echo urlencode($query);

如果不是那么你可以使用

echo preg_replace('/\s+/', "+", $query);

输出

hello+world

答案 2 :(得分:1)

对于preg_replace,请尝试:

preg_replace('/\s+/', '+', $query);

答案 3 :(得分:1)

$ formattedQuery = preg_replace('/ \ s /','+',$ query);