如何用PHP中的变量中的空格替换制表符?

Art*_*hur 15 php tabs replace spaces

$data包含制表符,前导空格和多个空格.我希望用空格替换所有标签.具有一个单独空格的多个空格,并删除前导空格.

事实上,这将改变这个输入数据:

[    asdf asdf     asdf           asdf   ] 
Run Code Online (Sandbox Code Playgroud)

进入输出数据:

[asdf asdf asdf asdf]
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

小智 19

使用单个空格修剪,替换制表符和额外空格:

$data = preg_replace('/[ ]{2,}|[\t]/', ' ', trim($data));
Run Code Online (Sandbox Code Playgroud)


RaY*_*ell 15

$data = trim(preg_replace('/\s+/g', '', $data));
Run Code Online (Sandbox Code Playgroud)

  • "g"修饰符不会起作用.根据http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php,不需要"g"来重复与整个文本相同的行,即使它包含换行符,也要考虑通过PHP作为一行 (10认同)