【问题标题】:Get rid of multiple white spaces in php or mysql摆脱 php 或 mysql 中的多个空格
【发布时间】:2015-06-26 20:58:09
【问题描述】:

我有一个接受用户输入的表单;最近,我遇到了许多带有多个空格的用户输入。 例如。 “我的                  测试              工作正常           很好!” 有什么办法可以在 PHP 级别或 MySQL 级别摆脱这些空白?

  1. 显然修剪在这里不起作用。
  2. 我正在考虑使用递归函数,但不确定是否有一种简单快捷的方法。

到目前为止我的代码如下:

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       !");

【问题讨论】:

  • 输入是实际的空格(\t\n、空格等)还是 之类的东西?有区别。

标签: php mysql


【解决方案1】:

如果输入是实际的空格并且您想用一个空格替换它们,您可以使用regular expression

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

\s 表示“空白”字符。 + 表示一个或多个。因此,这会将$input 中一个或多个空白字符的每个实例替换为一个空格。请参阅 preg_replace() docs 和一个不错的 tutorial on regexes


如果您不想替换真正的空格,而是要替换   之类的东西,您也可以这样做,但不能使用 \s。改用这个:

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

注意括号如何括住 

【讨论】:

  • 基本上就是  我已经尝试过类似于您建议的 preg_replace ;不过,这并不能完全消除出现的空白。谢谢!
  • @phpfreak 我已经更新了答案。下次请说清楚。
猜你喜欢
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多