所有格式空格,格式化为手打的空格

91 阅读1分钟

所有格式空格,格式化为手打的空格,包含不间断空格

/**
 * 所有格式空格,格式化为手打的空格
 * @param string $str
 * @return string
 */
function replaceSpaces($str, $replacement = ' ')
{
    $str = preg_replace('/\s+/', $replacement, $str);      // 垂直制表符
    $str = preg_replace('/\xc2\xa0/', $replacement, $str); // 不间断空格
    return trim($str);
}

// 单元测试 | 全部通过
function TestRplaceSpaces()
{
    $seeds = [
        "制表符"    => "\t",
        "换行符"    => "\n",
        "回车符"    => "\r",
        "标准空格"   => "\x20",
        "垂直制表符" => "\x0B",
        "TAB空格"   => "   "
    ];
    foreach ($seeds as $key => $val) {
        $res = $key . replaceSpaces($val, "OK") . "<br/>";
        echo $res;
    }
}