Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Вывод из json в ph

Тема в разделе "Свободное общение", создана пользователем snup55, 16 окт 2017.

16.10.17 в 18:19
05.08.19 в 02:02
17
1.433
0
  1. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Всем добрый день

    мне нужно вывести весь список name_person_ru
    делаю так:
    PHP:
    $jsonString = @file_get_contents('ссылка json');
    $cart json_decode$jsonStringtrue );
    echo 
    $cart["creators"]['actor'][1]['name_person_ru'] . "<br>";

    //ответ
    Мурат Йылдырым  //выводит только первого name_person_ru
    через foreach мне не подходит может каr-то через array

    HTML:
     
    {
     "id":"438216",
     "name_ru":"\u0410\u0441\u0438",
     "rating":
    {
        "imdb":"6.20",
        "imdb_num":"1128",
        "kp_rating":"8.319",
        "kp_rating_num":"482",
        "await_rating":null,
        "await_rating_count":null,
        "good_review":"100%",
        "good_review_vote_count":"1",
        "bad_review_vote_count":null,
        "neut_review_vote_count":null,
        "rating_url":"https:\/\/rating.kinopoisk.ru\/438216.gif"
    },
        "studio":"Sis Yapim",
        "comments":null,
        "creators":
        {
            "actor":
            [
                {
                    "name_person_ru":"\u0422\u0443\u0431\u0430 \u0411\u0443\u0439\u0443\u043a\u0443\u0441\u0442\u0443\u043d",
                },
                {
                    "name_person_ru":"\u041c\u0443\u0440\u0430\u0442 \u0419\u044b\u043b\u0434\u044b\u0440\u044b\u043c",
                },
                {
                "name_person_ru":"\u0427\u0435\u0442\u0438\u043d \u0422\u0435\u043a\u0438\u043d\u0434\u043e\u0440",
                },
                {
                "name_person_ru":"\u041d\u0443\u0440 \u0421\u044e\u0440\u0435\u0440",
                },
                {
                "name_person_ru":"\u0421\u0435\u043b\u044c\u043c\u0430 \u042d\u0440\u0433\u0435\u0447",
                },
                {
                "name_person_ru":"\u0414\u0436\u0435\u043c\u0430\u043b\u044c \u0425\u044e\u043d\u0430\u043b",
                },
                {
                "name_person_ru":"\u0422\u044e\u043b\u0430\u0439 \u0413\u044e\u043d\u0430\u043b",
                },
                {
                "name_person_ru":"\u0422\u044e\u043b\u0430\u0439 \u0411\u0443\u0440\u0441\u0430",
                },
                {
                "name_person_ru":"\u0410\u0441\u043b\u0438\u0445\u0430\u043d \u0413\u0443\u043d\u0435\u0440",
                },
                {
                "name_person_ru":"\u041d\u0435\u0447\u043c\u0435\u0442\u0442\u0438\u043d \u0427\u043e\u0431\u0430\u043d\u043e\u0433\u043b\u0443",
                },
                {
                "name_person_ru":"\u0421\u0430\u0439\u0433\u044b\u043d \u0421\u043e\u0439\u0441\u0430\u043b",
                },
                {
                "name_person_ru":"Ibrahim Bozguney",
                },
                {
                "name_person_ru":"\u041e\u043d\u0443\u0440 \u0421\u0430\u0439\u043b\u0430\u043a",
                },
                {
                "name_person_ru":"\u042d\u043b\u0438\u0444 \u0421\u043e\u043d\u043c\u0435\u0437",
                },
                {
                "name_person_ru":"\u041a\u0435\u043d\u0430\u043d \u0411\u0430\u043b\u044c",
                },
                {
                "name_person_ru":"Dilara Deviren",
                }
            ],
    
        },
    
    }

    буду благодарен за помощь
     
  2. LisER07

    VIP Кинотрафик v2 Кодер

    Регистрация:
    4 окт 2015
    Сообщения:
    630
    Лучших ответов:
    2
    Рейтинги:
    +116 / 3 / -0
    snup55
    PHP:
    $jsonString = @file_get_contents('ссылка json');
    $cart json_decode$jsonStringtrue );

    // foreach
    foreach ($cart["creators"]['actor'] as $key => $value) {
         echo 
    $value['name_person_ru'] . "<br>";
    }

    // for
    for ($i 0$i <= (count ($cart["creators"]['actor']) - 1); $i++ ){
          echo 
    $cart["creators"]['actor'][$i]['name_person_ru'] . "<br>";
    }
     
    #2 LisER07, 16 окт 2017
    Последнее редактирование: 16 окт 2017
  3. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    если я вставляю фореч выдает ошибку

    PHP:
        function add_video()
        {
            
    $urls            =    $this->input->post('url');
            
    $number_of_url    =    sizeof($urls);
            for (
    $i 0$i$number_of_url $i++)
            {
                if (
    $urls[$i] != "" )
                {
                    
    $video_id    =    (int) substr(parse_url($urls[$i], PHP_URL_PATH), 1);
                    
    $curl = @file_get_contents('https://getmovie.cc/api/kinopoisk.json?id='.$video_id.'&token=10fa25be1d07564d93c5300eb1de4a2a');

                    
    $response json_decode$curltrue );
                    
    // если ставлю фореч то выдает error syntex
                    
    $data['actors']            =    $response["creators"]['actor'][1]['name_person_ru']['']; 
                    
    $this->db->insert('video' $data);
                }
            }
        }
     
  4. LisER07

    VIP Кинотрафик v2 Кодер

    Регистрация:
    4 окт 2015
    Сообщения:
    630
    Лучших ответов:
    2
    Рейтинги:
    +116 / 3 / -0
    snup55 ['']; что это ?
     
  5. LisER07

    VIP Кинотрафик v2 Кодер

    Регистрация:
    4 окт 2015
    Сообщения:
    630
    Лучших ответов:
    2
    Рейтинги:
    +116 / 3 / -0
    snup55
    PHP:
    $data['actors']            =    $response["creators"]['actor'][1]['name_person_ru']['']; 
    меняй на это
    PHP:
    foreach ($response["creators"]['actor'] as $key => $value){
            
    $data['actors']   =   $value['name_person_ru']; 
    }
     
    • Нравится Нравится x 1
  6. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    PHP:
        function add_video()
        {
            
    $urls            =    $this->input->post('url');
            
    $number_of_url    =    sizeof($urls);
            for (
    $i 0$i$number_of_url $i++)
            {
                if (
    $urls[$i] != "" )
                {
                    
    $video_id    =    (int) substr(parse_url($urls[$i], PHP_URL_PATH), 1);
                    
    $curl = @file_get_contents('https://getmovie.cc/api/kinopoisk.json?id='.$video_id.'&token=10fa25be1d07564d93c5300eb1de4a2a');

                    
    $response json_decode$curltrue );
                    for (
    $i 0$i <= (count ($response["creators"]['actor']) - 1); $i++ )
                    {
                        
    $data['actors']         =  $response["creators"]['actor'][$i]['name_person_ru'];
                    }   
    //сделал через for выводит только одного актера из списка
                    
    $data['type']            =    'vimeo';
                    
    $data['title']            =    $response["name_ru"];
                    
    $data['description']    =    $response["description"];
                    
    $data['duration']        =    $response["time_film"];
                    
    $data['thumbnail']        =    $response["poster_film_big"];
                    
    $data['country']        =    $response["country"];
                    
    $data['year']            =    $response["year"];
                    
    $data['genre']            =    $response["genre"];
                    
    //$data['actors']            =    $response["creators"]['actor'][1]['name_person_ru'][''];
                    
    $data['director']        =    $response["creators"]['director'][0]['name_person_ru'];
                    
    $data['translator']        =    $response["studio"];
                    
    $data['embed_url']        =    'http://getmovie.cc/serial/'.$response->id.'/';
                    
    $data['category_id']    =    $this->input->post('category_id');
                    
    $data['date']            =    date("d M, Y");
                    
    $this->db->insert('video' $data);
                }
            }
        }
    сделал через for и foreach
    выводит только одного актера из списка
    1111.jpg
     
    #6 snup55, 16 окт 2017
    Последнее редактирование: 16 окт 2017
  7. Juker7

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 окт 2016
    Сообщения:
    525
    Лучших ответов:
    0
    Рейтинги:
    +266 / 4 / -0
    Наверно, но это не точно
    PHP:
     function add_video()
        {
            
    $urls            =    $this->input->post('url');
            
    $number_of_url    =    sizeof($urls);
            for (
    $i 0$i$number_of_url $i++)
            {
                if (
    $urls[$i] != "" )
                {
                    
    $video_id    =    (int) substr(parse_url($urls[$i], PHP_URL_PATH), 1);
                    
    $curl = @file_get_contents('https://getmovie.cc/api/kinopoisk.json?id='.$video_id.'&token=10fa25be1d07564d93c5300eb1de4a2a');

                    
    $response json_decode$curltrue );
                    
    $data['actors'] = array();
                    for (
    $i 0$i <= (count ($response["creators"]['actor']) - 1); $i++ )
                    {
                        
    $data['actors'][]         =  $response["creators"]['actor'][$i]['name_person_ru'];
                    }   
    //сделал через for выводит только одного актера из списка
                    
    $data['actors'] = implode(", "$data['actors']);
                    
    $data['type']            =    'vimeo';
                    
    $data['title']            =    $response["name_ru"];
                    
    $data['description']    =    $response["description"];
                    
    $data['duration']        =    $response["time_film"];
                    
    $data['thumbnail']        =    $response["poster_film_big"];
                    
    $data['country']        =    $response["country"];
                    
    $data['year']            =    $response["year"];
                    
    $data['genre']            =    $response["genre"];
                    
    //$data['actors']            =    $response["creators"]['actor'][1]['name_person_ru'][''];
                    
    $data['director']        =    $response["creators"]['director'][0]['name_person_ru'];
                    
    $data['translator']        =    $response["studio"];
                    
    $data['embed_url']        =    'http://getmovie.cc/serial/'.$response->id.'/';
                    
    $data['category_id']    =    $this->input->post('category_id');
                    
    $data['date']            =    date("d M, Y");
                    
    $this->db->insert('video' $data);
                }
            }
        }
     
    • Нравится Нравится x 1
  8. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Не загружает грузит что загрузка новости идет и все база пустая
     
  9. DotNet

    Кодер

    Регистрация:
    6 фев 2017
    Сообщения:
    54
    Лучших ответов:
    0
    Рейтинги:
    +34 / 0 / -0
    PHP:
    function add_video()
        {
            
    $urls            =    $this->input->post('url');
            
    $number_of_url    =    sizeof($urls);
            for (
    $i 0$i$number_of_url $i++)
            {
                if (
    $urls[$i] != "" )
                {
                    
    $video_id    =    (int) substr(parse_url($urls[$i], PHP_URL_PATH), 1);
                    
    $curl = @file_get_contents('https://getmovie.cc/api/kinopoisk.json?id='.$video_id.'&token=10fa25be1d07564d93c5300eb1de4a2a');

                    
    $response json_decode$curltrue );
                    
    $data['actors'] = array();    
                    foreach (
    $response["creators"]['actor'] as $key => $value) {
                        
    $data['actors'][] = $value['name_person_ru'];
                    }
                    
    $data['actors'] = implode(", "$data['actors']);
                    
    $data['type']            =    'vimeo';
                    
    $data['title']            =    $response["name_ru"];
                    
    $data['description']    =    $response["description"];
                    
    $data['duration']        =    $response["time_film"];
                    
    $data['thumbnail']        =    $response["poster_film_big"];
                    
    $data['country']        =    $response["country"];
                    
    $data['year']            =    $response["year"];
                    
    $data['genre']            =    $response["genre"];
                    
    $data['director']        =    $response["creators"]['director'][0]['name_person_ru'];
                    
    $data['translator']        =    $response["studio"];
                    
    $data['embed_url']        =    'http://getmovie.cc/serial/'.$response['id'].'/';
                    
    $data['category_id']    =    $this->input->post('category_id');
                    
    $data['date']            =    date("d M, Y");
                    
    $this->db->insert('video' $data);
                }
            }
        }
    http://celsoft.ru/test.php

    Если не сохраняет, то включай db_debug и смотри в чем дело.

    Насколько я понял, то режисеров тоже может быть несколько. Их вытаскивать по такому же принципу.
     
  10. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    с твоим кодом :
    PHP:
    ERROR 2017-10-17 03:11:46 --> Query errorColumn 'title' cannot be null Invalid queryINSERT INTO `video` (`actors`, `type`, `title`, `description`, `duration`, `thumbnail`, `country`, `year`, `genre`, `director`, `translator`, `embed_url`, `category_id`, `date`) VALUES ('''vimeo'NULLNULLNULLNULLNULLNULLNULLNULLNULL'http://getmovie.cc/serial//''1''17 Oct, 2017')
    про режиссеров ты прав тоже надо делать но я пока актеров делаю потом и поправлю их
    пробую не получается с твоим кодом тоже
    пишет что новость загружена но её нету в базе
    у меня на test.php тоже все выводится через echo вот базу не записывает гуглю дальше
     
    #10 snup55, 17 окт 2017
    Последнее редактирование: 17 окт 2017
  11. DotNet

    Кодер

    Регистрация:
    6 фев 2017
    Сообщения:
    54
    Лучших ответов:
    0
    Рейтинги:
    +34 / 0 / -0
    Скрин структуры таблицы сделай. Из phpmyadmin или ему подобного.
     
    • Нравится Нравится x 1
  12. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    PHP:
    CREATE TABLE `video` (
      `
    video_idint(11NOT NULL,
      `
    typelongtext COLLATE utf8_unicode_ci NOT NULL,
      `
    titlelongtext CHARACTER SET utf8 NOT NULL,
      `
    descriptionlongtext COLLATE utf8_unicode_ci NOT NULL,
      `
    tagslongtext COLLATE utf8_unicode_ci NOT NULL COMMENT 'comma separated',
      `
    durationint(11NOT NULL DEFAULT '0' COMMENT 'seconds',
      `
    thumbnaillongtext COLLATE utf8_unicode_ci NOT NULL COMMENT 'thumb url',
      `
    embed_urllongtext COLLATE utf8_unicode_ci NOT NULL COMMENT 'embed video url',
      `
    category_idint(11NOT NULL,
      `
    user_typelongtext COLLATE utf8_unicode_ci NOT NULL COMMENT 'admin public',
      `
    user_idint(11NOT NULL,
      `
    viewedint(11NOT NULL DEFAULT '0',
      `
    likesint(11NOT NULL DEFAULT '0',
      `
    dislikesint(11NOT NULL DEFAULT '0',
      `
    featuredint(11NOT NULL DEFAULT '0',
      `
    datelongtext COLLATE utf8_unicode_ci NOT NULL,
      `
    publishedint(11NOT NULL DEFAULT '1',
      `
    directorvarchar(255CHARACTER SET utf8 NOT NULL,
      `
    actorsvarchar(255CHARACTER SET utf8 NOT NULL,
      `
    translatorlongtext CHARACTER SET utf8 NOT NULL,
      `
    yearlongtext CHARACTER SET utf8 NOT NULL,
      `
    genrelongtext CHARACTER SET utf32 NOT NULL,
      `
    countrylongtext CHARACTER SET utf8 NOT NULL
    ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
    вот что сейчас выбивает Array
    HTML:
    ERROR - 2017-10-17 05:27:36 --> Severity: Notice --> Array to string conversion C:\xampp\htdocs\system\database\DB_driver.php 1476
    ERROR - 2017-10-17 05:27:36 --> Query error: Unknown column 'Array' in 'field list' - Invalid query: 
    INSERT INTO `video` (`actors`, `type`, `title`, `description`, `duration`, `thumbnail`, `country`, `year`, `genre`, `director`, `translator`, `embed_url`, `category_id`, `date`) 
    VALUES (Array, 'vimeo', 'В ожидании солнца', 'В сериале идет повествование о судьбе двух провинциалок — Матери Демет и дочери Зейнеп. Они проживают в небольшом городке Гельязы, который больше похож на деревню. У них есть свой маленький магазинчик, который практически не несет доходов в сравнении с физическими и материальными затратами на него. Это жалкое сосуществование однажды оборвется, после предложения давней подруги матери Жале. Жале работает в престижном университете Стамбула преподавателем. Она предлагает Демет и Зейнеп переехать к ней. Мать, мечтая дать дочери хорошее образование, идет на этот шаг, и они с дочкой переезжают в Стамбул.', '120 мин. / 02:00', 'https://st.kp.yandex.net/images/film_big/790391.jpg', 'Турция', '2013', 'драма', 'Алтан Дёнмез', 'D Productions', 'http://getmovie.cc/serial/790391/', '1', '17 Oct, 2017')
     
  13. DotNet

    Кодер

    Регистрация:
    6 фев 2017
    Сообщения:
    54
    Лучших ответов:
    0
    Рейтинги:
    +34 / 0 / -0
    snup55 странно конечно. Попробуй так.
    PHP:
    function add_video()
        {
            
    $urls            =    $this->input->post('url');
            
    $number_of_url    =    sizeof($urls);
            for (
    $i 0$i$number_of_url $i++)
            {
                if (
    $urls[$i] != "" )
                {
                    
    $video_id    =    (int) substr(parse_url($urls[$i], PHP_URL_PATH), 1);
                    
    $curl = @file_get_contents('https://getmovie.cc/api/kinopoisk.json?id='.$video_id.'&token=10fa25be1d07564d93c5300eb1de4a2a');

                    
    $response json_decode$curltrue );
                    
    $actors = array();   
                    foreach (
    $response["creators"]['actor'] as $key => $value) {
                        
    $actors[] = $value['name_person_ru'];
                    }
                    
    $data['actors'] = implode(", "$actors);
                    
    $data['type']            =    'vimeo';
                    
    $data['title']            =    $response["name_ru"];
                    
    $data['description']    =    $response["description"];
                    
    $data['duration']        =    $response["time_film"];
                    
    $data['thumbnail']        =    $response["poster_film_big"];
                    
    $data['country']        =    $response["country"];
                    
    $data['year']            =    $response["year"];
                    
    $data['genre']            =    $response["genre"];
                    
    $data['director']        =    $response["creators"]['director'][0]['name_person_ru'];
                    
    $data['translator']        =    $response["studio"];
                    
    $data['embed_url']        =    'http://getmovie.cc/serial/'.$response['id'].'/';
                    
    $data['category_id']    =    $this->input->post('category_id');
                    
    $data['date']            =    date("d M, Y");
                    
    $this->db->insert('video' $data);
                }
            }
        }
     
    • Лучший Лучший x 1
  14. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Все работает сделаю также под режиссера
    Всем спасибо за помощь ;) ( возможно как-то убрать в конце списка актеров последнею запетую ?)
    1111.jpg
     
  15. DotNet

    Кодер

    Регистрация:
    6 фев 2017
    Сообщения:
    54
    Лучших ответов:
    0
    Рейтинги:
    +34 / 0 / -0
    snup55 замени:
    $data['actors'] = implode(", ", $actors);
    на:
    $actors = implode(", ", $actors);
    $data['actors'] = substr(trim($actors), 0, -1);
     
    • Нравится Нравится x 1
  16. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    так как данный сайт не работает getmovie
    переделал под Kodik
    PHP:
        function add_video()
        {
            
    $urls            =    $this->input->post('url');
            
    $number_of_url    =    $urls;
            
    $response json_decode(file_get_contents('https://kodikapi.com/search?token=ВАШ-ТОКЕ&kinopoisk_id='.$number_of_url.'&with_material_data=true',false), true);
            
    $arr $response['results'][0]['material_data']['actors'];
            
    $actors = array();
            foreach (
    $arr as $key => $value) {
                
    $actors[] = $value;
            }
            
    $arr $response['results'][0]['material_data']["genres"];
            
    $genre = array();
            foreach (
    $arr as $key => $value) {
                
    $genre[] = $value;
            }
            
    $arr $response['results'][0]['material_data']['directors'];
            
    $director = array();
            foreach (
    $arr as $key => $value) {
                
    $director[] = $value;
            }
            
    $data['director']       = implode(", "$director);
            
    $data['genre']          = implode(", "$genre);
            
    $data['actors']         = implode(", "$actors);
            
    $data['type']            =    'kodik';
            
    $data['kaltura_id']   =   $this->input->post('ckaltura_id');
            
    $data['title']             =    $response['results'][0]['material_data']['title'];
            
    $data['kinopoisk_id']   =    $response['results'][0]["kinopoisk_id"];
            
    $data['title_en']       =    $response['results'][0]['material_data']['title_en'];
            
    $data['description']  =    $response['results'][0]['material_data']['description'];
            
    //$data['duration']    =    $response['results'][0]['material_data']['duration'];
            
    $data['thumbnail']    =    $response['results'][0]['material_data']['poster_url'];
            
    $data['countries']     =    $response['results'][0]['material_data']['countries'][0];
            
    $data['year']             =    $response['results'][0]["year"];
            
    $data['translator']     =    $response['results'][0]["translation"]['title'];
            
    $data['embed_url']      =    $response['results'][0]['link'];
            
    $data['category_id']    =    $this->input->post('category_id');
            
    $data['date']            =    date("d M, Y");
            
    $this->db->insert('video' $data);
        }
     
    #16 snup55, 4 авг 2019
    Последнее редактирование: 9 авг 2019
  17. Krabsterz8

    Krabsterz8 Бывалый

    Регистрация:
    25 окт 2015
    Сообщения:
    851
    Лучших ответов:
    1
    Рейтинги:
    +217 / 37 / -0
    .
     
    #17 Krabsterz8, 4 авг 2019
    Последнее редактирование: 3 фев 2020
  18. TopicStarter Overlay
    snup55

    snup55 Зелёный

    Регистрация:
    22 сен 2017
    Сообщения:
    8
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    Вводишь ссылку фильма с кинопоиска www.kinopoisk.ru/film/1046252 она обрезается, остается только ИД 1046252 и заполняется новость
    для самописного сайта
    [​IMG]
     
Похожие темы
  1. iKinoHD
    Ответов:
    17
    Просмотров:
    2.287
  2. киношпийон
    Ответов:
    0
    Просмотров:
    1.093
  3. 10000
    Ответов:
    3
    Просмотров:
    386
  4. jimmy2009
    Ответов:
    1
    Просмотров:
    1.448
  5. Andrij
    Ответов:
    0
    Просмотров:
    545
Загрузка...
Яндекс.Метрика