时间:2021-07-01 10:21:17 帮助过:7人阅读
- $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);
- <br><font color="#e78608">------解决方案--------------------</font><br>
- 嘿嘿...<br><br>a.php<br>-------------文本---------------<br><br>Name1 11 23 14<br>Name2 43 33<br>Name3 30 44 2<br><br>-------------文本---------------<br>b.php<br><br><!--?php<br /-->$file = "a.php"; // 变量赋值<br>$fp = fopen ( $file, "r" ); // 以只读方式打开文件<br>$i = 0; // i=0<br>while ( ! feof ( $fp ) ) { // while循环,条件:没到文件的末端。<br>
- $buffer = fgets ( $fp, 4096 ); // fgets() 函数用于从文件中逐行读取文件,,读取的字节数。默认是 1024 字节。<br>
- preg_replace ( '/ +/', ' ', $buffer );<br>
- preg_match_all ( '/ ([0-9]+)/', $buffer, $matches );<br>
- if (! empty ( $matches [1] )) {<br>
- print_r ( $matches [1] );<br>
- }<br>
- $i = $i + 1; // 通过while循环,带动i值递增,实现数组构建。<br>}<br>fclose ( $fp ); // 关闭文件。<br>?>
- <br><font color="#e78608">------解决方案--------------------</font><br>其实还有我觉得还有一个比较大的疑问!因为LZ要的是数字和字母,比如:<br>文本:<br>Name1:11 32<br>我最后取出来的是<br><dl class="code">PHP code<pre class="brush:php;toolbar:false layui-box layui-code-view layui-code-notepad"><ol class="layui-code-ol"><li></li><li>Array(</li><li> [0]=11</li><li> [1]=</li><li> [2]=32</li><li>) </li></ol></pre></dl>