2012-02-20 49 views
5

我有一個textarea包含電話號碼,每個數字在一個單獨的行。我想這個字符串爆炸成使用PHP:爆炸textarea線作爲單獨的數組元素

explode("\n", $numbers); 

explode("\r\n", $numbers); 

這不是工作的數組。請幫幫我。謝謝!

+3

如果你這麼聰明,告訴我,這裏有什麼問題? – 2012-02-20 14:30:31

+1

你的意思是寫爆炸(「\ n」,$數字);''或爆炸(「\ r \ n」,$數字);'?或者,你是否將這兩個陳述作爲一條單獨的線條一起寫出來? – 2012-02-20 14:42:06

+0

你應該多發一點代碼,HTML表單以及更多的周邊代碼。 – h00ligan 2012-02-20 15:26:33

回答

6

$records = preg_split('/[\r\n]+/', $mystring, -1, PREG_SPLIT_NO_EMPTY);

這應該這樣做。

6

manual所示:返回字符串數組

所以你必須存儲結果。 or也不會那樣工作。如果您不知道輸入是否包含\n\r\n,則可以進行替換以用空字符串替換\r,然後在\n上爆炸。

這應該做的伎倆:

$numbers = explode("\n", str_replace("\r", "", $numbers)); 
+1

你說得對,當然。用戶提交的數據可能不會轉換爲系統EOL。評論撤回。 – 2012-02-20 14:58:15

1

使用此

<?php 

$input = $_POST['textarea_name']; 
$new_array = array_values(array_filter(explode(PHP_EOL, $input))); 

// explode -> convert textarea to php array (that lines split by new line) 
// array_filter -> remove empty lines from array 
// array_values -> reset keys of array 

?>