PHP cURL Get Files Recursively From External Servers
Back-end developers can use PHP's cURL functions to get files from external servers. Here we script a recursive loop to get many files all at once in a batch to save many hours of work.
<?php
require ('path/to/your_db_connection_file.php');
function curl_fetch_file($url) {
// Initialize a cURL session
$ch = curl_init();
// Set some options for a cURL transfer
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
// Perform a cURL session
$data = curl_exec($ch);
// Close a cURL session
curl_close($ch);
return $data;
}
$sql = "SELECT id, title, vidid FROM videos ORDER BY id ASC LIMIT 0, 100";
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){
$id = $row["id"];
$title = $row["title"];
$vidid = $row["vidid"];
$imgdata = curl_fetch_file('https://img.youtube.com/vi/'.$vidid.'/mqdefault.jpg');
$fpc = 'images/vidthumbs/'.$vidid.'.jpg';
file_put_contents( $fpc, $imgdata );
echo 'Video title - '.$title.'<br>';
echo 'DBID <b>'.$id.'</b> with YTvideoID <b>'.$vidid.'</b> thumbnail received.<br>';
echo '<img src="images/vidthumbs/'.$vidid.'.jpg" width="100"><hr>';
}
?>