2011-08-06 66 views
0

我從來沒有真正使用過數組,因爲我從來沒有過這麼遠(一個簡單的變量已經足夠對我來說),但現在我已經創建了一個,就是要發佈多個文本區域的表單通過我的PHP腳本。使用換行符作爲數組輸入的分隔符?

我想要做的是使用斷行的遊客輸入作爲一個數組輸入分隔符。

例如,訪問者輸入90行文字(所有的URL),該陣列分解每一個成90°的列表,並創建用於每一個的陣列值。

的任何信息,建議或意見,將不勝感激!:)

回答

1

不是100%%的肯定是用什麼換行,例如:

Windows使用\r\n Linux使用\n (舊)Mac上使用\r

但是,如果你知道這一點,你可以簡單地做:

$urls = explode("\n", $_POST['urls']); 

編輯

實際測試後,使用正則表達式比第一做str_replace()和爆炸更快。

+0

謝謝:)。到底我在找什麼,我看過之前使用過的爆炸函數,但從來沒有想到它實際做了什麼)。 – Fireworksable

+2

使用str_replace並且每次爆炸都會有效:'$ url = str_replace(array(「\ r \ n」,「\ r」),「\ n」,$ _POST ['urls']);' –

1

http://www.php.net/manual/en/function.preg-split.php並作爲分隔符使用新行標誌

或看到PHP REGEX - text to array by preg_split at line break

要小心使用只是\r\n因爲每個操作系統都具有「新線」定義的另一種方式
通過看答案Tgr on SO question PHP REGEX - text to array by preg_split at line break

+0

正則表達式是不是真的需要在這裏我想。當真正不需要正則表達式時不要使用它們 – PeeHaa

+0

需要正則表達式,因爲新行不僅僅是'\ n',所以最好使用preg_replace和'\ R'開關來處理它們全部是 –

+0

它是?讓我進行測試。 1秒。如果你是對的,你是對的:) – PeeHaa

-1

使用爆炸

$array=explode("\n",$_POST['textarea']); 
+0

謝謝,正是我在找的東西。所以,當我調用$ array [0],$ array [1]等,我認爲它給出了行的值? – Fireworksable

+0

$ array [0]是第一行$ array [1]是第二個,等等 – RiaD

相關問題