-1

我的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;
    }

?>

我想读取文件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。我不知道如何解决这个问题。请帮助我,谢谢。

4

2 回答 2

1

你可以这样做:

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

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

如果您不知道 implode 是如何工作的,请看这里:http ://de1.php.net/manual/de/function.implode.php

于 2012-12-12T08:17:46.190 回答
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++;
                        }   
                }

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

于 2012-12-12T08:23:29.520 回答