我正在尝试用字符串中的+'替换所有空格,但是在我执行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 */
答案 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);