2012-08-23 34 views
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/"|| 

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

現在我想要把所有的數據從網址列到一個文本文件中。並逐一顯示數據。即:

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

現在,我被困住了。

a,我不知道如何防止輸出第一行。 b,我不知道如何得到這個url,並且把它們一個接一個地放在一個文本文件中。

首先我使用下面的代碼將數據輸出到屏幕。

$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)。我不想輸出它。我應該怎麼做。 謝謝。

+0

如果您不想回顯輸出,請刪除回顯語句。 – FilmJ

+0

我想回顯內容而不是標題。謝謝 – down

+0

我認爲你所說的是你想跳過第一行輸出,這是否正確? – FilmJ

回答

0

你非常接近!我已經稍微修改了你的代碼來做你想做的事情。基本上你需要輸出的第二個文件處理程序。您可以將其作爲附加模式打開,以便將附加文件附加到文件末尾。至於沒有回顯標題,你只需確保該行比第一行更大。希望能幫助到你!

$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); 
    } 
+0

謝謝你,我把你的代碼放入並運行它。顯示注意:未定義偏移量:1,所有內容都在output.txt中,但不是一行一行 – down

+0

我只需要[link](http://www.test.com/1455/)這一部分。必須有一個extration和分割到行內容src =「test.com/1455/」|| src =「http://www.test.com/image/1456/...我不知道該怎麼做。謝謝 – down

+0

我不確定你的意思。也許有時候在$ data的第一個索引中沒有值,所以你可以在寫一個isset($ data [1])以確保它在那裏 –

0

//跳過CSV的第一行 - 輸出第二個「列」數據。

$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); 
} 
相關問題