v2
This commit is contained in:
parent
48326c339f
commit
d23e8a06c4
BIN
assets/images/pexels-289586.jpg
Normal file
BIN
assets/images/pexels-289586.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 202 KiB |
BIN
assets/images/pexels-466685.jpg
Normal file
BIN
assets/images/pexels-466685.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 423 KiB |
BIN
assets/images/pexels-546819.jpg
Normal file
BIN
assets/images/pexels-546819.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 122 KiB |
58
includes/pexels.php
Normal file
58
includes/pexels.php
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
// includes/pexels.php
|
||||||
|
function pexels_key() {
|
||||||
|
$k = getenv('PEXELS_KEY');
|
||||||
|
return $k && strlen($k) > 0 ? $k : 'Vc99rnmOhHhJAbgGQoKLZtsaIVfkeownoQNbTj78VemUjKh08ZYRbf18';
|
||||||
|
}
|
||||||
|
function pexels_get($url) {
|
||||||
|
$ch = curl_init();
|
||||||
|
curl_setopt_array($ch, [
|
||||||
|
CURLOPT_URL => $url,
|
||||||
|
CURLOPT_RETURNTRANSFER => true,
|
||||||
|
CURLOPT_HTTPHEADER => [ 'Authorization: '. pexels_key() ],
|
||||||
|
CURLOPT_TIMEOUT => 15,
|
||||||
|
]);
|
||||||
|
$resp = curl_exec($ch);
|
||||||
|
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
curl_close($ch);
|
||||||
|
if ($code >= 200 && $code < 300 && $resp) return json_decode($resp, true);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
function download_to($srcUrl, $destPath) {
|
||||||
|
// Ensure the directory exists.
|
||||||
|
$dir = dirname($destPath);
|
||||||
|
if (!is_dir($dir)) {
|
||||||
|
if (!mkdir($dir, 0775, true)) {
|
||||||
|
error_log("Failed to create directory: " . $dir);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Use cURL to download the image, as file_get_contents can be restricted.
|
||||||
|
$ch = curl_init($srcUrl);
|
||||||
|
$fp = fopen($destPath, 'wb');
|
||||||
|
if (!$fp) {
|
||||||
|
error_log("Failed to open file for writing: " . $destPath);
|
||||||
|
curl_close($ch);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
curl_setopt($ch, CURLOPT_FILE, $fp);
|
||||||
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
||||||
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
||||||
|
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
|
||||||
|
$result = curl_exec($ch);
|
||||||
|
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
|
||||||
|
curl_close($ch);
|
||||||
|
fclose($fp);
|
||||||
|
|
||||||
|
if ($result === false || $httpCode !== 200) {
|
||||||
|
error_log("Failed to download image from " . $srcUrl . ". HTTP code: " . $httpCode);
|
||||||
|
// Clean up the failed download
|
||||||
|
if (file_exists($destPath)) {
|
||||||
|
unlink($destPath);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@ -38,7 +38,7 @@
|
|||||||
"id" => 1,
|
"id" => 1,
|
||||||
"title" => "The Future of Web Development",
|
"title" => "The Future of Web Development",
|
||||||
"excerpt" => "Exploring the latest trends and technologies shaping the web. From AI-powered tools to the rise of serverless architectures...",
|
"excerpt" => "Exploring the latest trends and technologies shaping the web. From AI-powered tools to the rise of serverless architectures...",
|
||||||
"image" => "https://picsum.photos/seed/tech/800/600",
|
"image" => "assets/images/pexels-546819.jpg",
|
||||||
"alt" => "Abstract technology background",
|
"alt" => "Abstract technology background",
|
||||||
"category" => "Technology",
|
"category" => "Technology",
|
||||||
"date" => "September 29, 2025"
|
"date" => "September 29, 2025"
|
||||||
@ -47,7 +47,7 @@
|
|||||||
"id" => 2,
|
"id" => 2,
|
||||||
"title" => "A Guide to Mindful Productivity",
|
"title" => "A Guide to Mindful Productivity",
|
||||||
"excerpt" => "In a world of constant distractions, learn how to focus your energy, manage your time, and achieve your goals with less stress.",
|
"excerpt" => "In a world of constant distractions, learn how to focus your energy, manage your time, and achieve your goals with less stress.",
|
||||||
"image" => "https://picsum.photos/seed/writing/800/600",
|
"image" => "assets/images/pexels-289586.jpg",
|
||||||
"alt" => "A person writing in a notebook",
|
"alt" => "A person writing in a notebook",
|
||||||
"category" => "Productivity",
|
"category" => "Productivity",
|
||||||
"date" => "September 25, 2025"
|
"date" => "September 25, 2025"
|
||||||
@ -56,7 +56,7 @@
|
|||||||
"id" => 3,
|
"id" => 3,
|
||||||
"title" => "Exploring Urban Landscapes",
|
"title" => "Exploring Urban Landscapes",
|
||||||
"excerpt" => "A photographic journey through the architectural marvels and hidden gems of the world's most vibrant cities.",
|
"excerpt" => "A photographic journey through the architectural marvels and hidden gems of the world's most vibrant cities.",
|
||||||
"image" => "https://picsum.photos/seed/city/800/600",
|
"image" => "assets/images/pexels-466685.jpg",
|
||||||
"alt" => "Cityscape at dusk",
|
"alt" => "Cityscape at dusk",
|
||||||
"category" => "Travel",
|
"category" => "Travel",
|
||||||
"date" => "September 22, 2025"
|
"date" => "September 22, 2025"
|
||||||
|
|||||||
6
post.php
6
post.php
@ -27,7 +27,7 @@
|
|||||||
"id" => 1,
|
"id" => 1,
|
||||||
"title" => "The Future of Web Development",
|
"title" => "The Future of Web Development",
|
||||||
"content" => "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh.</p><p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>",
|
"content" => "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh.</p><p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>",
|
||||||
"image" => "https://picsum.photos/seed/tech/1200/600",
|
"image" => "assets/images/pexels-546819.jpg",
|
||||||
"alt" => "Abstract technology background",
|
"alt" => "Abstract technology background",
|
||||||
"category" => "Technology",
|
"category" => "Technology",
|
||||||
"date" => "September 29, 2025",
|
"date" => "September 29, 2025",
|
||||||
@ -37,7 +37,7 @@
|
|||||||
"id" => 2,
|
"id" => 2,
|
||||||
"title" => "A Guide to Mindful Productivity",
|
"title" => "A Guide to Mindful Productivity",
|
||||||
"content" => "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh.</p><p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>",
|
"content" => "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh.</p><p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>",
|
||||||
"image" => "https://picsum.photos/seed/writing/1200/600",
|
"image" => "assets/images/pexels-289586.jpg",
|
||||||
"alt" => "A person writing in a notebook",
|
"alt" => "A person writing in a notebook",
|
||||||
"category" => "Productivity",
|
"category" => "Productivity",
|
||||||
"date" => "September 25, 2025",
|
"date" => "September 25, 2025",
|
||||||
@ -47,7 +47,7 @@
|
|||||||
"id" => 3,
|
"id" => 3,
|
||||||
"title" => "Exploring Urban Landscapes",
|
"title" => "Exploring Urban Landscapes",
|
||||||
"content" => "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh.</p><p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>",
|
"content" => "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh.</p><p>Donec nec justo eget felis facilisis fermentum. Aliquam porttitor mauris sit amet orci. Aenean dignissim pellentesque felis. Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</p>",
|
||||||
"image" => "https://picsum.photos/seed/city/1200/600",
|
"image" => "assets/images/pexels-466685.jpg",
|
||||||
"alt" => "Cityscape at dusk",
|
"alt" => "Cityscape at dusk",
|
||||||
"category" => "Travel",
|
"category" => "Travel",
|
||||||
"date" => "September 22, 2025",
|
"date" => "September 22, 2025",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user