getRandomImages(1); } /** * @param int $number * * @return int * @throws \JsonException */ public function getRandomImages(int $number) { $word_to_search = $this->getConfig()->get('collector.keywords.keywords', false); $url = sprintf('https://api.imgur.com/3/gallery/search?q=%s', $word_to_search); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ sprintf('Authorization: Client-ID %s', $this->getConfig()->get('collector.imgur.client_id')) ], )); $response = curl_exec($curl); curl_close($curl); $response = json_decode($response, true, 512, JSON_THROW_ON_ERROR); $images = array_map(static function($image) { return $image['images'][0]['link']; }, $response['data']); $index_to_download = array_rand($images, $number); if (!is_array($index_to_download)) { $index_to_download = [$index_to_download]; } foreach ($index_to_download as $image_index) { $photo = $images[$image_index]; file_put_contents($this->getPoolDirectory() . '/' . basename(parse_url($photo, PHP_URL_PATH)), file_get_contents($photo)); } return $number; } }