日期:2014-05-17 浏览次数:20553 次
$s = <<< TXT Name1 A B C Name2 A C Name3 A B C TXT; preg_match_all('/([ABC]+)\s+([ABC]*)\s+([ABC]*)\s*$/m', $s, $r); print_r($r);
------解决方案--------------------
嘿嘿...
a.php
-------------文本---------------
Name1 11 23 14
Name2 43 33
Name3 30 44 2
-------------文本---------------
b.php
<?php
$file = "a.php"; // 变量赋值
$fp = fopen ( $file, "r" ); // 以只读方式打开文件
$i = 0; // i=0
while ( ! feof ( $fp ) ) { // while循环,条件:没到文件的末端。
$buffer = fgets ( $fp, 4096 ); // fgets() 函数用于从文件中逐行读取文件,,读取的字节数。默认是 1024 字节。
preg_replace ( '/ +/', ' ', $buffer );
preg_match_all ( '/ ([0-9]+)/', $buffer, $matches );
if (! empty ( $matches [1] )) {
print_r ( $matches [1] );
}
$i = $i + 1; // 通过while循环,带动i值递增,实现数组构建。
}
fclose ( $fp ); // 关闭文件。
?>
------解决方案--------------------
其实还有我觉得还有一个比较大的疑问!因为LZ要的是数字和字母,比如:
文本:
Name1:11 32
我最后取出来的是
Array( [0]=11 [1]= [2]=32 )