2013-02-13 214 views
0

我正在從數組中提取數據,以便將其寫入文件供以後使用。如何將提取的數據從數組寫入文件

提取工作正常,print_r語句的結果爲我提供了所需的數據。但是,輸出到文件的數據只能獲取提取數據的最後一個值。

我錯過了什麼?我試過爆炸,將print_r的結果保存爲一個字符串,嘗試輸出緩衝start_ob()而沒有結果。

$url = "http://api.discogs.com/users/xxxxxx/collection/folders/0/releases?per_page=100&page=1"; 
    $json = json_decode(file_get_contents($url)); 


// Scan through outer loop 
    foreach ($json as $inner) { 

// scan through inner loop 
     foreach ($inner as $value) { 
//get thumb url 
     $thumb = $value->basic_information->thumb; 
//Remove -150 from thumb url to gain full image url 
      $image = str_replace("-150","",($thumb)); 

// Write it to file 
    file_put_contents("file.txt",$image); 
    print_r($image); 

    } 
    } 

回答

0

您可以用提取的最後一個數據反覆重寫文件。所以喲需要將數據追加到圖像變量,只有最後你需要把它放在磁盤上。

$url = "http://api.discogs.com/users/xxxxxx/collection/folders/0/releases?per_page=100&page=1"; 
    $json = json_decode(file_get_contents($url)); 


// Scan through outer loop 
    foreach ($json as $inner) { 

// scan through inner loop 
     foreach ($inner as $value) { 
//get thumb url 
     $thumb = $value->basic_information->thumb;   
//Remove -150 from thumb url to gain full image url 
// and append it to image 
      $image .= str_replace("-150","",($thumb)); 
// you can add ."\n" to add new line, like: 
//$image .= str_replace("-150","",($thumb))."\n"; 
// Write it to file  

    } 
    } 

    file_put_contents("file.txt",$image); 
    print_r($image); 
+0

沒有看到,感謝一百萬人爲我指出這一點,現在我可以繼續我的項目。 – Pimzel 2013-02-14 13:42:24

0

file_put_contents()手冊

http://www.php.net/manual/en/function.file-put-contents.php

此功能是相同的主叫fopen()fwrite()fclose()依次將數據寫入到文件中。

如果文件名不存在,則創建該文件。否則,現有文件將被覆蓋,除非設置了FILE_APPEND標誌。

所以,你可以使用標誌FILE_APPEND在現有的代碼停在每次寫重寫文件,或積累串寫一次像之前的評論者說(他們的方式是更快,更好)