免费注册 查看新帖 |

Chinaunix

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

急!!!看了几天了,如何把文本文件读到数组中并提取字段?谢谢! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-23 10:34 |只看该作者 |倒序浏览
文本格式(filename.txt):
aaa bbb ccc......
ddd eee fff......
...
...
...
先放在数组里,然后读取各个字段.
这里假设aaa代表id字段,bbb代表name字段,ccc代表sex字段
一行一个记录,字段间用空格隔开
这样就可以把我想要的字段内容存到事先建的数据库了
怎样用php实现呢?谢谢啦

论坛徽章:
0
2 [报告]
发表于 2006-04-23 10:51 |只看该作者


  1. <?php
  2. //取得文件内容
  3. $f = file($file_name);
  4. foreach($f as $key)
  5. {
  6.     //拆分为数组
  7.    $arr_f = explode('\n', $f);
  8.     //现在随便你处理了
  9.    print_r($arr_f);
  10.    //防止出问题
  11.     unset($arr_f);
  12. }

复制代码

论坛徽章:
0
3 [报告]
发表于 2006-04-23 14:15 |只看该作者
<?php
$file = './test.txt';
$handle = fopen( $file , 'r' );

while ( !feof($handle) )
{
        $row = fgets($handle);
        $content = explode(' ' , $row);
        $sql = "insert into table_name ('field1','field2','field3') value('".$content[0]."' ,'".$content[1]."','".$content[2] ."')";
        echo $sql.'<br>';
}




?>

[ 本帖最后由 garfield61 于 2006-4-23 14:18 编辑 ]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
4 [报告]
发表于 2006-04-23 17:19 |只看该作者
http://w.yi.org/ftp/FAPM/PHP/zh/function.fgetcsv.html

看看:
<?php
$row = 1;
$handle = fopen ("test.csv","r");
while ($data = fgetcsv ($handle, 1000, " ")) {
    $num = count ($data);
    print "<p> $num fields in line $row: <br>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        print $data[$c] . "<br>\n";
    }
}
fclose ($handle);
?>

论坛徽章:
0
5 [报告]
发表于 2006-04-24 21:41 |只看该作者
谢谢,楼上的几个兄弟的回复,我综合了一下,自己写的代码:
<?php
$row = 1;
$handle = fopen ("/tmp/filename.txt","r");
while ($data = fgetcsv ($handle, 1000, " ")) {
    $num = count ($data);
    print "<p> $num fields in line $row: <br>\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
          $content = explode(' ' , $row);
         fclose($handle);
    }
}
$conn=mysql_connect("hostname","root","password");
$dbname=mysql_select_db("mytest");
$sql = "insert into table_name ('field1','field2','field3') value('".$content[0]."' ,'".$content[1]."','".$content[2] ."')";

?>

可是我在客户端访问的时候出现了错误了:
warning:fopen("/tmp/filename.txt","r") - permission denied in /var/www/html/fopen.php on line 3

warning:fgetcsv():supplied argument is not a valid file-handle resource in /var/www/html/fopen.php on line 4

请问一下,现在该怎么办???谢谢

[ 本帖最后由 hotsummer 于 2006-4-25 09:54 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-04-25 10:32 |只看该作者
$exlname = $_FILES['exlfile']['tmp_name']
$lines=file($exlname);
$unm=sizeof($lines);

for($X=0;$X<=$unm-1;$X++)
{
        $result=trim($lines[$X]);
        echo $result
}

txt文本格式
111111111
222222222
333333333


回车断行!

你试试吧!

论坛徽章:
0
7 [报告]
发表于 2006-04-25 14:38 |只看该作者

回复 5楼 hotsummer 的帖子

你要把 filename.txt 文件设成 777 或 755

论坛徽章:
0
8 [报告]
发表于 2006-04-25 14:47 |只看该作者
$exlname = $_FILES['exlfile']['tmp_name']
这个是表示文件被上传后在服务端储存的临时文件名吧,但是我并没有要上传文件啊.
呵呵,相反而是在客户端去读取服务器端的文件(把filename.txt放在/tmp下)....

论坛徽章:
0
9 [报告]
发表于 2006-04-26 14:35 |只看该作者
我只是举例一个取源文件的过程~方式之一~

不管你是怎么得到源文件~ 以下代码是可行的

因为这段是我曾经程序里截取出来的~所以没有过多考虑到会反而会针对~$exlname = $_FILES['exlfile']['tmp_name'] 了~

````````````` 举 一反三~ 例子毕竟是例子!

论坛徽章:
0
10 [报告]
发表于 2006-04-26 14:39 |只看该作者
原帖由 colins 于 2006-4-25 14:38 发表
你要把 filename.txt 文件设成 777 或 755



有可能

你先成  chown ~看你文件的权限~是否可以访问~

再用chmod 设用 777 或 755
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP