首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

php 读取文本文件解决思路

2012-03-11 
php 读取文本文件用fopen打开后,一行行读,#和@开头的过滤掉,当有node或leaf(标签开始时开始读)读里面

php 读取文本文件
用fopen打开后,一行行读,#和@开头的过滤掉,当有<node>或<leaf>(标签开始时开始读)读里面的三个属性,再遇下一个标签<leaf>或</leaf>或</node>后,就把前三个作为数组拿出来,也就是把每个标签中间的读完是三个元素的数组拿出来处理,读完为止.
这样的方法怎么写呀?
#vision1.1
@fileid=0010
<node>
name=xx
id=0
orth=zzz
<leaf>
name=xx
id=801
orth=/btf/sub.txt
</leaf>
<leaf>
name=xx
id=101
orth=/bbs/test.txt
</leaf>
</node>

[解决办法]
前两行的#和@过滤好处理,从<node>开始:
当找到<node>时,用变量一次性记录下 $firstNode="<node>";处理下使$firstNode="</node>";
然后一行行处理判断当前行如果=$firstNode,
则读到此为止...
此是<node></node>间的内容全部取出.

至于<>....</>正则处理..
[解决办法]

PHP code
$fn = 'data2.txt';$fp = fopen($fn, 'r');$s = '';while($buf = fgets($fp)) {  if(in_array($buf{0}, array('#', '@'))) continue;  if($buf{0} == '<') {    if($s) {      parse_str($s, $t);      $r[] = $t;      $s = '';    }    continue;  }  $s .= ($s ? '&' : '') . $buf;}fclose($fp);print_r($r);
[解决办法]
唠叨老大出手,你就可以解帖了,应该。

热点排行