Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 替换多余的空格_Php - Fatal编程技术网

Php 替换多余的空格

Php 替换多余的空格,php,Php,我需要在我的应用程序中删除我的玩家用户名中多余的空格(字母之间的空格不止一次),并用一个空格替换它们。我不介意用户使用单个空格,但我需要删除相邻的多个空格。目前,我是这样实现的: $replace_array=array(' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','

我需要在我的应用程序中删除我的玩家用户名中多余的空格(字母之间的空格不止一次),并用一个空格替换它们。我不介意用户使用单个空格,但我需要删除相邻的多个空格。目前,我是这样实现的:

$replace_array=array('  ','   ','    ','     ','      ','       ','        ','             ','          ','           ','            ','             ','              ','               ');
$fill_array=array('','','','','','','','','','','','','','');

$user_name=str_replace($replace_array,$fill_array,trim($_POST['name']));
$user_name=preg_replace('/[^a-zA-Z0-9 ]/','',$user_name);
这似乎完全没有必要删除多余的空白。preg_replace函数是否已经处理过多余的空格?如果没有,我应该做些什么来简化这部分代码


谢谢

找到一个或多个空间并替换为一个空间:

preg_replace('/\s+/', ' ', $string);
preg_replace('/\s+/',' ',$user_name)
也可以使用1个preg replace语句

$user_name=preg_replace('/([^a-zA-Z0-9 ]|\s+)/','',$user_name);

请尝试像这样进行preg_替换:

preg_replace('/\s{2,}/', ' ', $str);

我的理解是,简单地使用
str_replace('',)
将解决您的问题。它取代了一个空间中的多个事件。您也尝试过使用ltrim吗?

我如何将当前的preg\u replace功能与此功能结合起来?我需要进一步研究这个函数。
$user\u name=preg\u replace('/\s+/',''.$user\u name),然后像往常一样进行第二次预更换。混合使用具有不同用途的正则表达式通常只会让你吃不消,所以要将它们分开。@Phillip最好先使用你的正则表达式,然后再使用这个正则表达式。或“aaa&aaa”将失效,可能重复