繁体   English   中英

trim() 留下单个尾随和前导空格

[英]trim() leaves a single trailing and leading space

php 7.4

我相信 php 的修剪出现故障。 它会删除重复的尾随和前导空格,但会留下一个尾随和前导空格。

function string_to_safe_list($str){
    $list = explode(",", $str);
    array_map(function($x){
        return trim(strtolower(htmlspecialchars($x)));
    }, $list);
    var_dump($str);
    var_dump($list);
    return $list;
}
$str = "test,test, test, test   ,  test, test";
=> string_to_safe_list($str) = {"test", "test", " test", " test ", " test", " test"}

$str是一个“逗号分隔值”数组。

我怎样才能让trim()正常运行,从而让$list变成{"test", "test", "test", "test", "test", "test"} ,而无需手动检查和更正第一个$list中每个字符串的最后一个字符?

然而,删除每个空白实例是不可接受的,因为有效的$str可能是"test entry, test entry, test, test" ,它应该变成{"test entry", "test entry", "test", "test"}

您必须将 array_map 的结果分配给一个变量。

function string_to_safe_list($str){
    $list = explode(",", $str);
    $list = array_map(function($x){
        return trim(strtolower(htmlspecialchars($x)));
    }, $list);
    return $list;
}

$str = "test,test, test, test   ,  test, test";

var_dump(string_to_safe_list($str));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM