读取第一个前10行的行,并使用PHP在每行10行中显示单词

时间:2012-12-12 08:10:31

标签: php file

我有以下PHP代码:

<?php
    $path = "files/stats_pmta.affinitead.net.2012-12-12.txt";
    $num = 10;
    $fh = @fopen($path, 'r');
    if ($fh){
    for ($i=0;$i<$num;$i++){
    $newfile = fgets($fh,1024);     
    $t = explode(";", $newfile);
    echo $t;
    echo "<br>";
    }


    } else {
        echo 1;
    }

&GT;

我想读取文件stats_pmta.affinitead.net.2012-12-12.txt中只读取下面文件前10行的所有数据:

2012-12-12-0551;affinitead.net;1221588;106346;8.70;gmail.com;123577;7780;6.29
2012-12-12-0551;affinitead.net;1221588;106346;8.70;wanadoo.fr;123562;9227;7.46
2012-12-12-0551;affinitead.net;1221588;106346;8.70;yahoo.fr;104819;1685;1.60
2012-12-12-0551;affinitead.net;1221588;106346;8.70;orange.fr;87132;7341;8.42
2012-12-12-0551;affinitead.net;1221588;106346;8.70;laposte.net;79597;1040;1.30
2012-12-12-0551;affinitead.net;1221588;106346;8.70;hotmail.fr;77601;14107;18.17
2012-12-12-0551;affinitead.net;1221588;106346;8.70;neuf.fr;67392;1793;2.66
2012-12-12-0551;affinitead.net;1221588;106346;8.70;hotmail.com;55300;10494;18.97
2012-12-12-0551;affinitead.net;1221588;106346;8.70;free.fr;43422;1706;3.92
2012-12-12-0551;affinitead.net;1221588;106346;8.70;sfr.fr;39063;251;.64
2012-12-12-0551;affinitead.net;1221588;106346;8.70;aol.com;32061;9859;30.75
2012-12-12-0551;affinitead.net;1221588;106346;8.70;club-internet.fr;22424;233;1.03
2012-12-12-0551;affinitead.net;1221588;106346;8.70;yahoo.com;18646;1365;7.32
2012-12-12-0551;affinitead.net;1221588;106346;8.70;voila.fr;18513;3650

在我读完前10行之后,我想在每行显示单词,如:

2012-12-12-0551;affinitead.net;1221588;106346;8.70;gmail.com;123577;7780;6.29

我想显示gmail.com 123577 7780 6.29

但上面的PHP代码我得到了输出array。我不知道如何解决这个问题。任何人都请帮助我,谢谢。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

$path = 'path/to/file'
$fp = fopen($path, 'r');
$count = 0;
while($columns = fgetcsv($fp, 256, ';', '"')
{
    if(++$count > 10)
        break;

    echo implode("\t", $colums);
}

如果你不知道,内爆是如何起作用的,请看这里:http://de1.php.net/manual/de/function.implode.php

答案 1 :(得分:0)

这是一种可以通过使用PHP函数爆炸来实现的方法。

$textFile = file_get_contents("test.txt");

                $lineFromText = explode("\n", $textFile);

                $row = 0;
                foreach($lineFromText as $line)
                {
                        if($row <= 10)
                        {
                        $words = explode(";",$line);
                        echo $words[5] . ' ' . $words[6] . ' ' . $words[7] . ' ' . $words[8];
                        $row++;
                        }   
                }

编辑代码以便您可以替换自己的代码,您可能需要在尝试执行任何操作之前检查文件是否为空。