-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 に答える