2013-08-29 30 views
0

我最終想要將粘貼到textarea中的文本格式化爲html表格。 輸入到textarea的數據將是多行和多列數據。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>"; 


} 
+2

您可能想提供一個您要發送的數據結構的示例 –

+0

執行此操作的唯一真正簡單的方法是標準(或一組)deilimter(s)。你可以在'\ n'上分割表,然後像'preg_split()'這樣將每行分割成基於分隔符的列。 –

+0

從頭開始,這是我的HTML出錯了...... – Jason

回答

0

如果使用preg_split劃分你行,你可以使用幾個sepparators和任何一個正則表達式可以表達,甚至多個空格在一起。下面是由一個或多個ESPACES sepparating的例子,並用逗號

$cols = preg_split('/\s+|,/',$lines) 

使用|到sepparate分裂的不同的選擇。 \s是空格字符(或等效字符),+表示該字符的一次或多次。

+0

我已經測試過這個現在,雖然它似乎將行拆分爲空格的列,但我在輸出時遇到了一些麻煩。當我做一個循環時,它會打印每一列,但將它們全部發送到一行。 – Jason

+0

您還沒有在原始文章的代碼中啓動'

'。 –

+0

我用這個,它的工作原理。在第一篇文章中更新了我的代碼。 – Jason