<?php
$resource = 'products';
$category = 'smartphones';
$needle = 'iPhone';
$url = 'https://dummyjson.com/';
function fetchDataByCategory(string $url, string $resource, string $category): array
{
$url = $url . $resource . '/category/' . $category;
$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}'");
return json_decode($response, true)[$resource];
}
function filterData(array $data, string $needle): array
{
$items = [];
foreach($data as $item) {
if (stripos($item['title'], $needle) !== false) {
array_push($items, $item);
}
}
return $items;
}
function insertItemToDb($data, $pdo = $pdo) {
list($title, $description, $brand, $category, $thumbnail, $price) = $data;
$sql = "INSERT INTO {$category} (title, description, brand, category, thumbnail, price)
VALUES (:title, :description, :brand, :category, :thumbnail, :price)";
try {
var_dump($pdo);
$stmt = $pdo->prepare($sql);
$stmt->execute(array(
":title" => $title,
":description" => description,
":brand" => $brand,
":category" => $category,
":thumbnail" => $thumbnail,
":price" => $price
));
} catch (PDOException $e) {
echo "Ошибка при сохранении {$category}: " . $e->getMessage() . "\n";
}
}
$data = fetchDataByCategory($url, $resource, $category);
$data = filterData($data, $needle);
// var_dump(get_class_methods($pdo));
insertItemToDb($data);
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