Následující skript je jednoduchý parser, který dokáže stáhnout obrázky z nástěnky jakéhokoliv pinterest účtu spolu s odkazem na detail obrázku.
Nejprve funkce, která ukládá obrázky do adresáře temp.
function ulozobrazek($novynazev,$url,$sirka,$maxvyska=0) { $adresa=false; $urlbez=preg_replace('/\\?.*/', '', $url); $ext=str_replace('.','',strrchr($urlbez,'.')); $ext=strtolower($ext); if ($pos=strpos($ext,"?")) $ext=substr($ext,0,$pos); $novy="tmp_".$novynazev.".".$ext; if ($ext=="jpg" || $ext=="jpeg" || $ext=="gif" || $ext=="png") { @$file=fopen($url,"rb"); if ($file) { $fc=fopen("temp/$novy","wb"); while (!feof($file)) { $line=fread($file,8192); fwrite($fc,$line); } fclose($fc); $sku=exif_imagetype("temp/$novy"); switch ($sku) { case 1: // IMAGETYPE_GIF $opr="gif"; break; case 2: // IMAGETYPE_JPEG $opr="jpg"; break; case 3: // IMAGETYPE_PNG $opr="png"; break; default: $opr=$ext; break; } if ($ext!=$opr) $ext=$opr; $novynazev=$novynazev.".jpg"; if ($ext=="jpg") { $im=imagecreatefromjpeg("temp/$novy"); } elseif ($ext=="gif") { $im=imagecreatefromgif("temp/$novy"); } elseif ($ext=="png") { $im=imagecreatefrompng("temp/$novy"); } $im_width=imagesx($im); $im_height=imagesy($im); $vyska=round($im_height*$sirka/$im_width); if ($maxvyska>0 && $vyska>$maxvyska) { $sirka=round($sirka/$vyska*$maxvyska); $vyska=$maxvyska; } $new_im=imagecreatetruecolor($sirka,$vyska); imagecopyresampled($new_im,$im,0,0,0,0,$sirka,$vyska,$im_width,$im_height); imagedestroy($im); imagejpeg($new_im,"temp/".$novynazev,80); @unlink("temp/".$novy); return("temp/".$novynazev); } } return($adresa); }
A následuje skript, který uloží posledních 12 pinů z nástěnky uživatele pinterest (https://cz.pinterest.com/pinterest/pins/) jako obrázky a vrátí řetězec obrázků s odkazy v proměnné $data.
$data = ''; $subject = file_get_contents('https://cz.pinterest.com/pinterest/pins/'); $pattern = '/\"orig\": \{\"url\": \"(.*?)\", \"width\":/si'; preg_match_all($pattern, $subject, $matches); $i=0; foreach ($matches[1] as $item) { $item=str_replace("\\","",$item); $nazevobrazku=time().$plusobrazek; $nazevobrazku="pinterest_".sha1($nazevobrazku); $plusobrazek++; $vratobrazek=ulozobrazek($nazevobrazku,$item,100); if ($vratobrazek) { list($sirka,$vyska)=getimagesize($vratobrazek); $data .= '<a href="https://cz.pinterest.com/pinterest/pins/" target="_blank"><img src="' . $vratobrazek . '" style="width:'.$sirka.'px;height:'.$vyska.'px;margin-bottom:5px;"></a>'; $i++; if ($i==12) break; } }
Volání funkce ulozobrazek si můžete upravit a nastavit potřebnou maximální šířku, případně i výšku uloženého obrázku.