0

csv データは次のようになります。

  (first line)   price   url

  (second line)    $10   src="http://www.test.com/1455/"||src="http://www.test.com/image/1456/"||

  (third line)    $20  src="http://www.test.com/2260/"||src="http://www.test.com/2261/"||

      ....   ........

今度は、url 列のすべてのデータをテキスト ファイルに入れたいと思います。データを 1 つずつ表示します。すなわち:

http://www.test.com/1455/
http://www.test.com/image/1456/
http://www.test.com/2260/
http://www.test.com/2261/
....

今、私は立ち往生しています。

a、最初の行を出力しないようにする方法がわかりません。b、URLを取得する方法がわかりません。それらをテキストファイルに1つずつ配置します。

まず、次のコードを使用してデータを画面に出力します。

$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);

        $row++;

       echo $data[1] . "<br />\n";

    }
    fclose($handle);
}

上記のコードは、最初の行 (url) も出力します。出力したくない。どうすればいいですか。ありがとうございました。

4

2 に答える 2

0

あなたはとても近いです!私はあなたがやろうとしていることをするためにあなたのコードをほんの少し修正しました。基本的に、出力用に2番目のファイルハンドラーが必要です。これを追加モードとして開いて、ファイルの最後に追加を書き込むことができます。ヘッダーをエコーし​​ない場合は、行が最初の行よりも大きいことを確認してください。それが役に立てば幸い!

    $row = 1;
    if (($handle = fopen("test.csv", "r")) !== FALSE && ($handle2 = fopen("output.txt", 'a')) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            if($row > 1) {
                fwrite($handle2, "{$data[1]}\n");
            }
            $row++;
        }
        fclose($handle);
        fclose($handle2);
    }
于 2012-08-23T05:10:08.917 に答える
0

//CSVの最初の行をスキップします-データの2番目の「列」を出力します。

$row = 0;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        if ($row > 0 ) {
          echo $data[1] . "<br />\n";
        }
        $row++;
    }
    fclose($handle);
}
于 2012-08-23T05:30:38.700 に答える