<?php
// try {
// $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // вывод ошибок
// // Выполняем запрос к API
// $ch = curl_init();
// curl_setopt($ch, CURLOPT_URL, "https://dummyjson.com/products");
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// $response = curl_exec($ch);
// curl_close($ch);
// if (!$response) die('Ошибка загрузки данных');
// // Парсим JSON
// $data = json_decode($response, true);
// if (!isset($data['products'])) die('Нет списка продуктов');
// foreach ($data['products'] as $product) {
// var_dump($product['title']);
// if (stripos($product['title'], 'iPhone') !== false || stripos($product['category'], 'iPhone') !== false) {
// try {
// $stmt = $pdo->prepare("INSERT INTO products (title, description, price, brand, category) VALUES (:title, :description, :price, :brand, :category)");
// $stmt->bindValue(':title', $product['title']);
// $stmt->bindValue(':description', $product['description']);
// $stmt->bindValue(':price', $product['price']);
// $stmt->bindValue(':brand', $product['brand']);
// $stmt->bindValue(':category', $product['category']);
// $stmt->execute();
// } catch (PDOException $e) {
// echo "Ошибка при сохранении товара: {$product['title']} - {$e->getMessage()}";
// }
// }
// }
// echo "Продукты успешно загружены!";
// } catch (PDOException $e) {
// die("Ошибка соединения с базой данных: " . $e->getMessage());
// }
// $_SERVER['REQUEST_URI'] = '/products/category/smartphones';
// try {
// $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// } catch (PDOException $e) {
// die("Ошибка подключения к базе данных: " . $e->getMessage());
// }
// $requestUrl = strtok($_SERVER['REQUEST_URI'], '?');
// list($resource, ,$category) = explode('/', trim($requestUrl, '/'));
$resource = 'products';
/*
Здвесь эффективнее использовать получение продуктов сразу по категоири,
но руководствуемся ссылкой из тз.
'https://dummyjson.com/products/category/smartphones'
*/
$url = "https://dummyjson.com/{$resource}";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
if (!$response) die("Ошибка загрузки '{$resource}'");
$data = json_decode($response, true);
foreach($products as $product) {
if($products['category'] != 'smartphones') continue;
var_dump($product);
}
// if ($data && isset($data['products'])) {
// foreach ($data['products'] as $item) {
// $title = $item['title'];
// $brand = $item['brand'];
// $category = $item['category'];
// $thumbnail = $item['thumbnail'];
// $price = $item['price'];
// $sql = "INSERT INTO products (title, brand, category, thumbnail, price)
// VALUES (:title, :brand, :category, :thumbnail, :price)";
// try {
// $stmt = $pdo->prepare($sql);
// $stmt->execute(array(
// ":title" => $title,
// ":brand" => $brand,
// ":category" => $category,
// ":thumbnail" => $thumbnail,
// ":price" => $price
// ));
// } catch (PDOException $e) {
// echo "Ошибка при сохранении продукта: " . $e->getMessage() . "\n";
// }
// }
// echo "Данные успешно импортированы!";
// } else {
// echo "Нет данных для обработки.";
// }
PHP version :
PHP 7.4
PHP 8.0
PHP 8.1
PHP 8.2
PHP 8.3
PHP 8.4
Run PHP Code
Save snippet