dousi4472 2015-06-26 20:58
浏览 7
已采纳

摆脱php或mysql中的多个空格

I have a form which takes user inputs; Recently, I have come across many user inputs with multiple white spaces. Eg. "My                  tests               are working            fine!" Is there any way I can get rid of these white spaces at PHP level or MySQL level?

  1. Clearly trim doesn't work here.
  2. I was thinking of using Recursive function but not sure if there's an easy and fast way of doing this.

my code so far is as below:

function noWhiteSpaces($string) {
   if (!empty($string)) {
      $string = trim($string);
      $new_str = str_replace('  ', ' ', $string);
   } else {
      return false;
   }
   return $new_str;
}

echo noWhiteSpaces("My        tests     are working fine here       !");
  • 写回答

1条回答 默认 最新

  • dream_high1026 2015-06-26 21:03
    关注

    If the input is actual whitespaces and you want to replace them with a single space, you could use a regular expression.

    $stripped = preg_replace('/\s+/', ' ', $input);
    

    \s means 'whitespace' character. + means one or more. So, this replaces every instance of one or more whitespace characters' in $input with a single space. See the preg_replace() docs, and a nice tutorial on regexes.


    If you're not looking to replace real whitespace but rather stuff like  , you could do the same, but not with \s. Use this instead:

    $stripped = preg_replace('/( )+/', ' ', $input);
    

    Note how the brackets enclose  .

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?