我从textarea获取数据,用户必须在每行输入一个名称。该数据后来在回车时被拆分。有时用户可能会故意添加空行。如何检测这些行并删除它们?我正在使用PHP。我不介意使用正则表达式或其他任何东西。
数据不正确
Matthew
Mark
Luke
John
James
更正数据(请注意删除空行)
Matthew
Mark
Luke
John
James
答案 0 :(得分:9)
使用正则表达式消除爆炸前的空白行(适用于任意数量的连续空白行,也请参阅下一个代码段):
$text = preg_replace('/\n+/', "\n", trim($_POST['textarea']));
使用正则表达式进行拆分:
$lines = preg_split('/\n+/', trim($_POST['textarea']));
$text = implode("\n", $lines);
没有正则表达式的分裂:
$lines = array_filter(explode("\n", trim($_POST['textarea'])));
$text = implode("\n", $lines);
今天感觉有点创意,选择你的毒药:)
答案 1 :(得分:0)
我认为,简单的字符串替换应该可以解决问题。
str_replace("\r\n\r\n", "\r\n", $text);
答案 2 :(得分:0)
分割输入后,循环搜索空行的数组:
$lines = explode("\n", $_POST['your_textarea']);
foreach ($lines as $k=>$v) if(empty($v)) unset($lines[$k]);
你甚至可以查找只包含空格的行来删除它们:
$lines = explode("\n", $_POST['your_textarea']);
foreach ($lines as $k=>$v) if(empty(trim($v))) unset($lines[$k]);
(两个代码段均未经测试)
注意:按换行符拆分时要小心(我将它们拆分为\ n,但如果客户端浏览器在Windows上运行,则可以是\ r \ n。)