2013-02-13 1 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

0

С file_put_contents() ручной

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

Эта функция идентична вызову fopen(), fwrite() и fclose() последовательно записывать данные в файл.

Если имя файла не существует, файл создается. В противном случае существующий файл будет перезаписан, если не установлен флаг FILE_APPEND.

Таким образом, вы можете использовать флаг FILE_APPEND в существующем коде, чтобы остановить перезаписи файла на каждую запись, или накапливать строку и записать его сразу, как предыдущий комментатор сказал (их путь быстрее и лучше)

Смежные вопросы