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.