我最终希望将文本粘贴到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>";
}
答案 0 :(得分:0)
如果您使用preg_split
来划分行,则可以使用多个sepparator和正则表达式可以表达的任何内容,甚至可以使用多个空格。这是一个通过一个或多个espaces和逗号
$cols = preg_split('/\s+|,/',$lines)
使用|
分隔不同的拆分选项。 \s
是空格字符(或等效字符),+
表示该字符的一次或多次。