2012-03-03 100 views
0

我想从文本文件中分割字符串。从文本文件中获取字符串并分成数组

如果.txt文件已从某位置读取。我想读取文件并获取数组中的字符串。

文本文件中有如下数据

aaa 1111111, 
    2hajakka, 
    87uj5687, 
    F2tryty 
bbb 45454545, 
    rereer, 
    87uj5687, 
    4343343, 
    944dsdds 

我想要存储在阵列线像

$arr = array(
"aaa 1111111, 2hajakka, 87uj5687, F2tryty ", 
"bbb 45454545, rereer, 87uj5687, 4343343, 944dsdds"); 

笔记:
数据必须开始第一行的名称,如(AAA,BBB)数据的被逗号隔开。如果没有逗号在它进入下一个阵列场提前

由于线路

+0

你问像1-1 = 2(你的期望)!怎么样!!!!!它的位置。 – K6t 2012-03-03 12:00:54

回答

0
$file_handle = fopen("myfile.txt", "r"); 
$arr[] = ""; 
$i = 0; 
$temp_string = ''; 

while (!feof($file_handle)) { 
$line = fgets($file_handle); 
if(strpos($line,",")!== false) 
{ 
$temp_string = $temp_string.$line;} 
else{ 
$temp_string = $temp_string.$line; 
$arr[$i] = $temp_string; 
$temp_string = ''; 
$i++;} 
} 
+0

谢谢kaushtuv – satheesh 2012-03-03 14:32:13

+0

随时。那是否工作? – Kaushtuv 2012-03-03 23:50:35

0

你正在试图做的是非常简单的:

  1. 崩溃多行记录到一个单一的线
  2. 线分割​​成的阵列

几乎:

<?php 
$string = 'aaa 1111111, 
    2hajakka, 
    87uj5687, 
    F2tryty 
bbb 45454545, 
    rereer, 
    87uj5687, 
    4343343, 
    944dsdds'; 

// move lines beginning with a space to the previous line 
$string = preg_replace('#\n +#', ' ', $string); 
// split lines into array 
$array = explode("\n", $string); 
var_dump($array); 
+0

感谢你罗德尼,但我有另一个疑问,如果我给数据的空间,如“1111 111,2ha ja kka,87 uj5 687,F 2try ty”我如何使用preg_replace – satheesh 2012-03-03 14:27:26

+0

这些空间的行为究竟如何? – rodneyrehm 2012-03-03 14:59:31

+0

像这样rodney,J1.A1 DUT.A1 DUT.A2 C1.1 C2.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1 – satheesh 2012-03-05 11:26:43

相关问题