pixtabay urlをUNIQUEで、テーブルをつくります。
CREATE TABLE img.pixtabay ( id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, pixtaurl VARCHAR(255) UNIQUE, imgurl VARCHAR(60), tags VARCHAR(255) );
続いて、apiから、画像を取得し、dbに画像のパス・タグを入れます。
$stmt = $dbh -> prepare("INSERT IGNORE INTO pixtabay (pixtaurl, imgurl, tags) VALUES(:pixtaurl, :imgurl, :tags)"); $date = date("Ymt"); $i=0; foreach($url as $value){ $data = file_get_contents($value); $pass = "img/" .$date. "-" . $i . ".jpeg"; $stmt->bindParam(':pixtaurl', $url[$i], PDO::PARAM_STR); $stmt->bindParam(':imgurl', $pass, PDO::PARAM_STR); $stmt->bindParam(':tags', $tags[$i], PDO::PARAM_STR); $stmt->execute(); file_put_contents($pass, $data); $i++; } ?>
検索クエリに一致するタグがある画像パスをDBから取得して表示
$query = "アップル"; while($result = $stmt->fetch(PDO::FETCH_ASSOC)){ if(strpos($result["tags"], $query) !== false){ $url[] = $result["imgurl"]; } } echo "タグに". $query. "を含む画像<br>"; // var_dump($url); foreach($url as $value){ echo "<img src=\"" .$value. "\" width=\"200\" height=\"120\" >"; } ?>
ぎゃーーーー