請教怎麼按空行來分割txt檔案,

來源:互聯網
上載者:User
請教怎麼按空行來分割txt檔案,
比如txt檔案 a.txt

內容如下:
啊啊啊啊
呃呃呃

111111
222222

嘎嘎嘎嘎
嘎嘎嘎

裡面有空行,怎麼按空行把它切割成一段段的字串呢


回複討論(解決方案)

$content = file_get_contents('./a.txt');
$rows = explode("\r\n", $content);

調用函數file即可.

如果是以空行來分割就要找兩個換行(\r\n)了
$str='123
defsf

abc
1213

&*(
';
print_r(explode("\n\r",$str)); //相當於print_r(explode("\r\n\r\n",$str));
或者用正則
preg_match('/[^.]+?(?=\r\n\r\n)/',$str,$mat);
print_r($mat);

正則那個用preg_match_all,少寫了

$s =<<< TXT啊啊啊啊呃呃呃111111222222嘎嘎嘎嘎嘎嘎嘎TXT;$a = preg_split("/([\r\n]+)\\1/", $s);print_r($a);
Array(    [0] => 啊啊啊啊呃呃呃    [1] => 111111222222    [2] => 嘎嘎嘎嘎嘎嘎嘎)

$s =<<< TXT啊啊啊啊呃呃呃111111222222嘎嘎嘎嘎嘎嘎嘎TXT;$a = preg_split("/([\r\n]+)\\1/", $s);print_r($a);
Array(    [0] => 啊啊啊啊呃呃呃    [1] => 111111222222    [2] => 嘎嘎嘎嘎嘎嘎嘎)


我測試這段代碼的結果是
Array ( [0] => 啊啊啊啊 呃呃呃 111111 222222 嘎嘎嘎嘎 嘎嘎嘎 )

如果檔案資料比較小可以考慮先將內容一次性讀取出來,然後使用explode方法進行分割。
如果檔案非常大,一次性載入必然造成記憶體佔用過大,效能低下。這種情況可以考慮open檔案之後,逐行讀取,對行資料進行校正從而進行分割。

$content = file_get_contents('./a.txt');
$rows = explode("\r\n", $content);



這樣是按照換行分割,而不是按照空格分割,這樣的結果會輸出
Array ( [0] => 啊啊啊啊 [1] => 呃呃呃 [2] => [3] => 111111 [4] => 222222 [5] => [6] => 嘎嘎嘎嘎 [7] => 嘎嘎嘎 [8] => )

按照3樓的朋友說的使用$rows = explode("\r\n\r\n", $content);
輸出的結果為
Array ( [0] => 啊啊啊啊 呃呃呃 111111 222222 嘎嘎嘎嘎 嘎嘎嘎 )
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.