0
<?php

// Open the file
$filename = 'pvemail.txt';
$fp = fopen($filename, 'r'); 
// Add each line to an array
if ($fp) {
   $array = explode("\n", fread($fp, filesize($filename)));
}
//print_r ($array);
for ($c = 0; $c < count($array); $c++){
    $cell = explode(",", $array[$c]);
print_r ($cell);
echo '<br/>';
}

?>

私は現在、このコードに取り組んでいます。Google レポートから生成されたテキスト ファイルを取得し、それを配列に展開してから、配列の各要素を取得し、それを別の配列に展開しました。しかし、私が今抱えている問題は、2 番目の展開された配列の 3 つの要素のみを取得したいのに、各配列に 20 の要素があることです。
for または foreach ループを使用する必要がありますか? $cell[2]、$cell[11]、$cell[12] を出力するだけです。私は使用してみました:

echo ($cell[2] + " " + $cell[12] + " " + $cell[11]

($cell[11] と $cell[12] はこの順序になっています。これは、11 が姓で 12 が名であり、最初に名が必要なため、それらを逆に配置する必要があったためです) しかし、それを実行すると、改行と 0 を出力するだけのコードです。配列をループする最も効果的な方法は何だろうと本当に思っています.すでに確立したループ内でそれを行うべきですか?
既存の for ループ内に配置する場合、次のような if/else ループを使用できると考えていました。

if($cell = $cell[2]){
echo ($cell[2])
};

しかし、私はこれがうまくいくとは確信していません。$cell[2]、[11]、[12] を格納する変数を定義し、それに基づいて if ループを作成する必要があります。その後、変数をエコーするだけで済みますか? 効果がありそうですか?フォーラムでこれに似た投稿を探しましたが、何も見つかりませんでした。

20130912,b875c9b154cf7b8d,el@pv-eu.com,ACTIVE,30720,1054180015,,,20100902,‌​20130910,20130904,L,E,,,,20130911,2010-09-02 09:11:37,2013-09-10 23:51:21,2013-09-04 03:06:09,2013-09-11 00:41:24 
20130912,66c63753b8188f17,lf@pv-eu.com,ACTIVE,30720,3699701524,,,20110315,201309‌​11,20130911,F,L,,,,19691231,2011-03-15 02:00:31,2013-09-11 00:50:17,2013-09-11 00:52:16,1969-12-31 16:00:00
20130912,bd5ef40689adf9ac,ah@pv-eu.com,ACTIVE,30720,3476851137,,,20110426,201309‌​11,20130910,H,A,,,,20110720,2011-04-26 01:47:56,2013-09-11 16:58:48,2013-09-10 06:20:26,2011-07-20

より多くのデータがありますが、これはテキスト ファイル自体がどのように見えるかです。私が引っ張ろうとしているのは、メールアドレスと名前だけです。

4

1 に答える 1

0

pvemail.txt が CSV ファイルであると仮定すると、これで問題は解決しますか?

$content = file_get_contents('pvemail.txt');
$lines = explode("\n", $content);

header('Content-type: text/plain');

foreach($lines as $line) {
    $values = explode(',', $line);
    echo $values[2], ' ', $values[12], ' ', $values[11], "\n";
}

3 つのサンプル行を使用すると、上記のコードは次のように出力します。

el@pv-eu.com E L
lf@pv-eu.com L F
ah@pv-eu.com A H
于 2013-09-13T13:42:42.433 に答える