php - 将 json_decode 数据从最旧到最新存储在 MySql 数据库中

标签 php mysql json laravel jsondecoder

我有这个代码:

$url = 'http://example.com/523223.json?';
        $json= file_get_contents($url);

        $data = json_decode($json);
        $rows = $data->{'items'};
        foreach ($rows as $row) {
            echo '<p>';
            $title = $row->name;
            $description = $row->description;
            $link = $row->link;
            $image_link = $row->thumbnails;

            $path = $image_link->large;
            $filename = basename($path);

            try {
                Image::make($path)->save(public_path('storage/posts/' . $filename));
            } catch (\Intervention\Image\Exception\NotReadableException $e) {
                Image::make($path)->save(public_path('storage/posts/' . 'https://lh3.googleusercontent.com/yI8LPDBhjvqLR1mQMitJlibZdWqaYAlMVUJK6zpBQkOb_Bk03qn_l2SQyn5yY__KZcY-=w300-rw'));
            }

            $post = new Post;
            $post->title = $title;
            $post->body = '..';
            $post->excerpt = $description;
            $post->meta_description = $link;
            $post->image = 'posts/' . $filename;

            $post->save();
        }

它的作用是从 JSON URL 中获取内容并将其存储到基于 LaraveL 的数据库中。所以问题是它存储从最新到最旧的数据,但我想要的是从最旧到最新存储项目。 这是第一个问题,第二个问题是如何使其仅存储最新的而不重复已存储的那些并且仅检查那些新的?

最佳答案

以下是仅使用 array_reverse 即可完成的操作:

$url = 'http://example.com/523223.json?';
        $json= file_get_contents($url);

        $data = json_decode($json);
        $rows = $data->{'items'};
        foreach (array_reverse($rows) as $row) {
            echo '<p>';
            $title = $row->name;
            $description = $row->description;
            $link = $row->link;
            $image_link = $row->thumbnail;

            $path = $image_link;
            $filename = basename($path);

            try {
                Image::make($path)->save(public_path('storage/posts/' . $filename));
            } catch (\Intervention\Image\Exception\NotReadableException $e) {
                Image::make($path)->save(public_path('storage/posts/' . 'https://lh3.googleusercontent.com/yI8LPDBhjvqLR1mQMitJlibZdWqaYAlMVUJK6zpBQkOb_Bk03qn_l2SQyn5yY__KZcY-=w300-rw'));
            }

            $post = new Post;
            $post->title = $title;
            $post->body = '..';
            $post->excerpt = $description;
            $post->meta_description = $link;
            $post->slug = $link;
            $post->image = 'posts/' . $filename;

            $post->save();
        }

关于php - 将 json_decode 数据从最旧到最新存储在 MySql 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49558565/

相关文章:

php - 检查 MySQL 服务器是否能够接受连接

javascript - 如何为您的网站制作模糊的延迟图像加载?

php - mysqli_fetch_array() 还是 mysqli_fetch_all()?

python - 如何使用 MySQL 使用经度和纬度列找到行之间的距离?

javascript - 使用 jQuery 解析 JSON,检索两个变量。

javascript - 如何为 API 中设置的日期格式分配默认值?

android - AsyncTask #3 错误解析 JSON 对象。字符串无法转换为 JSONObject

php - 列出来自不同表的数据,根据ID分组

mysql - MongoDB 作为 MySQL 频繁连接和查询的缓存

mysql - 选择不同的互斥(基于另一列的值)行