Textarea与列数组

时间:2013-08-29 23:30:19

标签: php html arrays textarea

我最终希望将文本粘贴到textarea中以格式化为html表格。 输入textarea的数据将是多行和多列数据。

我能够毫不费力地获取各行,但我需要能够获取行和列才能将它们正确地放入表中。

我遇到的一个问题是列不一定用相同的字符分隔。输入往往在每列之间有多个空格(可能会以某种方式将其缩小到1)。

以下是我的代码示例,其中列出了各行。

if (isset($_POST['Submit1'])) {

$test = isset($_POST['test'])?$_POST['test']:"";
$testlines = explode("\n", str_replace("\r", "", $test));
foreach($testlines as $lines) {

echo $lines . "</br>";

}
}

基于我尝试使用preg_split的建议,它现在输出一个表。

if (isset($_POST['Submit1'])) {

$test = isset($_POST['test'])?$_POST['test']:"";
$testlines = explode("\n", str_replace("\r", "", $test));

echo "<table>";
foreach($testlines as $lines) {
echo "<tr>";
$cols = preg_split('/\s+|,/',$lines);

foreach($cols as $field){
echo "<td>" . $field . "</td>";
}
echo "</tr>";
}
echo "</table>";


}

1 个答案:

答案 0 :(得分:0)

如果您使用preg_split来划分行,则可以使用多个sepparator和正则表达式可以表达的任何内容,甚至可以使用多个空格。这是一个通过一个或多个espaces和逗号

进行隔离的示例
$cols = preg_split('/\s+|,/',$lines)

使用|分隔不同的拆分选项。 \s是空格字符(或等效字符),+表示该字符的一次或多次。