清理PHP中的逗号分隔列表
让用户输入项目列表是一种正常的做法,但是有时要使用户正确执行操作本身就是一个挑战。有些用户会在逗号之间放置空格,有些则不会,有些甚至会在列表的末尾添加逗号。
这是一些代码,可以使用一些简单的正则表达式来清除逗号分隔的列表。它可以使用preg_replace()函数来工作,并通过向该函数传递一个选项模式数组和一个替换数组。
$list= trim($list); $patterns[0] = '/\s*,\s*/'; $patterns[1] = '/,{2,}/'; $patterns[2] = '/,+$/'; $patterns[3] = '/^,+/'; $replacements[0] = ','; $replacements[1] = ','; $replacements[2] = ''; $replacements[3] = ''; $list= preg_replace($patterns, $replacements, $list);
取以下字符串,由用户在凌晨2点输入,然后从酒吧回家后上网冲浪。
,,,,item1,,,,,,,,,item2,item3,item4,,,,,,item5,,,,,,,,,
该可怕的字符串将转换为以下整洁的字符串。
item1,item2,item3,item4,item5
该代码的工作方式是先替换逗号前后的任何空格,然后再将多个逗号替换为单个逗号。最终,代码检测到字符串开头或结尾的任何逗号并将其删除。