2

csv ファイル (test.csv) があり、テキストは次のとおりです。

1,maly,maly(),f,df
2,cheata,aaa,df,df
3,cheata,df,df,df
4,maly,fc,cfv,f
5,maly,df,fg,fg
6,chantha,fc,gf,fg
7,chantha,gh,a,g
8,David,fgfd,dfg,g

私が欲しいもの:

表示したいmaly cheata chantha Davidのは:

$c=0;   
$data=fopen('test.csv','r');
while($row=fgets($data)){
if($c!=0){
echo $row[3]."<br>\n";
}
$c++;
}

問題は

欲しいものが表示されません。表示します

ハハハ

これを修正するにはどうすればよいですか?

4

4 に答える 4

3

fgetcsvの代わりに使用してくださいfgets

if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        if (isset($data[1])) {
            echo $data[1] . "<br>\n";
        }
    }
    fclose($handle);
}
于 2012-08-28T02:41:06.177 に答える
3

fgetcsvの代わりに電話するつもりだったようですfgets。また、nameインデックスは1、代わりに3次のようになります。

<?php

$file = fopen('test.csv', 'r');
while($row = fgetcsv($file)) {
    if (isset($row[1])) {
        echo $row[1], "\n";
    }
}
fclose($file);
于 2012-08-28T02:37:41.197 に答える
0

このfileメソッドは、配列内のすべての行を返します。このexplodeメソッドは、特定の区切り文字で行を分割します。

$lines = file($file_name);

$fields = array();
foreach ($lines as $line) {
    $cells = explode(',', $line);
    $fields[] = $cells[1];
}

echo "<pre>";
print_r($fields);
echo "</pre>";
于 2012-08-28T02:42:54.537 に答える
0

見出しが質問と一致しません。行ではなく、2番目の列が必要です。

まず、各行の4番目の文字を取得するには、次のようなことを行う必要があります(テストされていません)。

$data=fopen('test.csv','r');
while($row=fgets($data)){
   $cols =  explode(',' $row);
   echo $cols[1]."<br>\n";
}
于 2012-08-28T02:43:25.447 に答える