免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1870 | 回复: 6
打印 上一主题 下一主题

[调试] php读取文本文件的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-14 20:19 |只看该作者 |倒序浏览
新手 见笑

数据存储在txt文件中,类似
555        555        555        192.168.1.188       
---------------
1        1        1        192.168.1.188       
---------------

我想用php的语法把他们读出来,然后可以分类显示如下:
name:555  id:555  number:555  ip:192.168.1.188
name:1    id:1    number:1    ip:192.168.1.188

大概应该是fopen文件,然后存入一个数组中?应该是2维数组吧。一维的我会做了,可是二维的还读不出来。请问该如何操作?
谢谢


[ 本帖最后由 HonestQiao 于 2005-11-14 20:45 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-11-14 20:22 |只看该作者
我是这么写的  
可是不知道错在哪里

<?
        $file="$datapath/ddd.txt";
        $data=array();
        $fp=fopen($file,"r");
        while($ch=fgets($fp))
                {$data[]=split(",",$ch);}
        while(list($key1,$value)=each($data))
                {
                        echo "$key1 : $value<br>";
                }
        echo "<font color=red>total:".count($data)." lines.</font>n";
        fclose($fp);
?>

[ 本帖最后由 amer 于 2005-11-14 20:24 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
3 [报告]
发表于 2005-11-14 21:18 |只看该作者

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2005-11-14 21:20 |只看该作者
{$data[]=split(",",$ch);}

,作为分隔符号,而你现在的分隔符号为空格。

论坛徽章:
0
5 [报告]
发表于 2005-11-15 02:50 |只看该作者
假设TXT文件的结构为:
----------------------------------------------
555,555,555,192.168.1.188
5155,5155,5155,192.168.1.188
5255,5255,5255,192.168.1.188
----------------------------------------------

  1. $note = @fread($fp,filesize($dir.$file));
  2. @fclose($fp);
  3. $note_1 = explode("/n",$note);
  4. $max=count($note_1);
  5. for($i=0;$i<$max;$i++)
  6. {
  7.   ${note.$i}=explode(",",$note_1[$i]);
  8.   array_push($need_array,${note.$i});
  9.   }
  10. print_r($need_array);
复制代码

[ 本帖最后由 yiking 于 2005-11-15 02:54 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
6 [报告]
发表于 2005-11-15 09:20 |只看该作者
以下代码经过测试,好用,考虑到了你的字符串之间的空格。
  1. <?php

  2. // --------------------------------------------------------------------------
  3. // File name   : 文件名称.php
  4. // Description : 文件说明
  5. // Requirement : PHP4 (http://www.php.net)
  6. //
  7. // Copyright(C), HonestQiao, 2005, All Rights Reserved.
  8. //
  9. // Author: HonestQiao (honestqiao@hotmail.com)
  10. //
  11. // --------------------------------------------------------------------------
  12.                 $datapath = "D:/var/tmp/php";
  13.         $file="$datapath/ddd.txt";
  14.         $data=array();
  15.         $fp=fopen($file,"r");
  16.         while($ch=fgets($fp))
  17.                 {if (preg_match('/(\d+)[ \t]+(\d+)[ \t]+(\d+)[ \t]+([\d\.]+)/im', $ch)) {
  18.                                                 preg_match_all('/(\d+)[ \t]+(\d+)[ \t]+(\d+)[ \t]+([\d\.]+)/im', $ch, $aryResult, PREG_PATTERN_ORDER);
  19.                                                 $data[]=array($aryResult[1][0] , $aryResult[2][0], $aryResult[3][0], $aryResult[4][0]);
  20.                                         }
  21.                                 }
  22.         while(list($key1,$value)=each($data))
  23.                 {       
  24.                         echo "$key1 : name:$value[0]  id:$value[1]  number:$value[2]  ip:$value[3]<br>n";
  25.                 }
  26.         echo "<font color=red>total:".count($data)." lines.</font>n";
  27.         fclose($fp);
  28. ?>
复制代码

[ 本帖最后由 HonestQiao 于 2005-11-15 09:21 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2005-11-15 17:41 |只看该作者
原帖由 amer 于 2005-11-14 20:19 发表
新手 见笑

数据存储在txt文件中,类似
555        555        555        192.168.1.188       
---------------
1        1        1        192.168.1.188       
---------------

我想用php的语法把他们读出来,然后可以分类显示如下:
name:555  id:555   ...


一个foreach搞定吧。

数据存储文件假设为db.txt


  1. <?PHP
  2.     $db_file = "db.txt";
  3.     $arr_file = file("$db_file");
  4.    
  5.     foreach ($arr_file as $str_line){
  6.          $str_line = trim ($str_line);
  7.          list($name, $id, $number, $ip) = explode("t", $str_line);
  8.          echo "name:$nametid:$idtnumber:$numbertip:$ipn";
  9.     }
  10. ?>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP