2014-11-13 5 views
0

я получаю ответ JSON с сайта,JSON для преобразования CSV в PHP

затем преобразовать его в формат JSON декодируются файл, мой код

$author = $_POST['author_name']; 
$author_name = str_replace(' ', '+', $author); 
$term = $_POST['term']; 
$term_search = str_replace(' ', '+', $term); 
$country = $_POST['country']; 
$entity = 'ebook'; 

$search_url = "https://itunes.apple.com/searchterm=".$term_search."&entity=".$entity."&country=".$country; 
$data = file_get_contents($search_url); 
$josn_decoded = json_decode($data, true); 
$file_name = "searched_book.csv"; 
$fp = fopen($file_name, 'w'); 
foreach($josn_decoded['results'] as $search_result){ 

    fputcsv($fp, $search_result); 
} 
fclose($fp); 

реакция echo "<pre>"; print_r($josn_decoded), как

<pre>Array 
(
    [resultCount] => 5 
    [results] => Array 
     (
      [0] => Array 
       (
        [artistId] => 673560392 
        [artistName] => Hanna Raskin 
        [kind] => ebook 
        [price] => 2.99 
        [description] => Yelp Help, written by professional food critic Hanna Raskin (Seattle Weekly, Dallas Observer). 
        [currency] => USD 
        [genres] => Array 
         (
          [0] => Cookbooks, Food & Wine 
          [1] => Books 
          [2] => Computers & Internet 
          [3] => Internet 
         ) 
       [genreIds] => Array 
        (
         [0] => 9028 
         [1] => 38 
         [2] => 9027 
         [3] => 10020 
        ) 

       [releaseDate] => 2013-07-06T07:00:00Z 
       [trackId] => 673560390 
       [trackName] => Yelp Help: How to Write Great Online Restaurant Reviews 
       [formattedPrice] => $2.99 
       [artistIds] => Array 
        (
         [0] => 673560392 
        ) 

       [artworkUrl60] => http://a2.mzstatic.com/us/r30/Publication/v4/30/fa/89/30fa8929-ba32-41fd-c046-bb660b2c886c/9781301327515.60x60-50.jpg 
       [artistViewUrl] => https://itunes.apple.com/us/artist/hanna-raskin/id673560392?mt=11&uo=4 
       [trackCensoredName] => Yelp Help: How to Write Great Online Restaurant Reviews 
       [fileSizeBytes] => 219793 
       [artworkUrl100] => http://a5.mzstatic.com/us/r30/Publication/v4/30/fa/89/30fa8929-ba32-41fd-c046-bb660b2c886c/9781301327515.100x100-75.jpg 
       [trackViewUrl] => https://itunes.apple.com/us/book/yelp-help-how-to-write-great/id673560390?mt=11&uo=4 
      ) 

     [1] => Array 
      (
       [artistId] => 413390948 
       [artistName] => Gradiva Couzin & Jennifer Grappone 
       [kind] => ebook 
       [price] => 1.99 
       [description] => While most businesses know the importance of online reviews on sites such as Yelp.com, they have no clue how to grab the reins and help shape the conversation around their service or product. 
       [currency] => USD 
       [genres] => Array 
        (
         [0] => Industries & Professions 
         [1] => Books 
         [2] => Business & Personal Finance 
        ) 

       [genreIds] => Array 
        (
         [0] => 10005 
         [1] => 38 
         [2] => 9009 
        ) 

       [releaseDate] => 2013-10-03T07:00:00Z 
       [trackId] => 737317739 
       [trackName] => Yelp for Business 
       [formattedPrice] => $1.99 
       [artistIds] => Array 
        (
         [0] => 413390948 
         [1] => 413390943 
        ) 

       [artworkUrl60] => http://a2.mzstatic.com/us/r30/Publication6/v4/48/d4/fe/48d4fe78-2668-0c25-02f2-0e1cf2c21983/9781118857731.60x60-50.jpg 
       [artistViewUrl] => https://itunes.apple.com/us/artist/gradiva-couzin-jennifer-grappone/id413390948?mt=11&uo=4 
       [trackCensoredName] => Yelp for Business 
       [fileSizeBytes] => 2703426 
       [artworkUrl100] => http://a4.mzstatic.com/us/r30/Publication6/v4/48/d4/fe/48d4fe78-2668-0c25-02f2-0e1cf2c21983/9781118857731.100x100-75.jpg 
       [trackViewUrl] => https://itunes.apple.com/us/book/yelp-for-business/id737317739?mt=11&uo=4 
      ) 

    ) 

)

, когда я пишу его в CSV-файл я получаю следующее сообщение об ошибке

Массив для преобразования строки в D: \ WAMP \ WWW \ search_book \ search_code.php на линии 29

, пожалуйста, руководство меня .. я новичок в этом

ответ

0

Попробуйте это один :)

<?php 

    $json_str = "{'aintlist':[4,3,2,1], 'astringlist':['str1','str2']}"; 
    $json_obj = json_decode ($json_str); 
    $fp = fopen('file.csv', 'w'); 
    foreach ($json_obj as $fields) 
    { 
     fputcsv($fp, $fields); 
    } 
    fclose($fp); 

?> 
+1

это не сработает, потому что мой ответ имеет сложный уровень, и это только простой пример массива json. – saadk

1

fputcsv принимает только один размерный массив, а не многомерный массив. Вы должны преобразовать genres, genreIds, artistIds и т. Д. В строку. Возможно, вам нужно что-то вроде implode().

Например:

Таким образом, в формате CSV, ваша genres колонка быть как Cookbooks, Food & Wine|Books|Business & Personal Finance.

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