Log in

View Full Version : Flicker Fetch User Images



bluewalrus
08-25-2010, 01:26 AM
I'm trying to pull images for my friends flicker account from all of the pages there. I'm only able to pull them from the first page though. Does anyone see why this isn't working?



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
#images {
border:#000000 solid 1px;
width:350px;
height:350px;
padding:10px;
}
</style>
</head>
<body>
<div id="images">
<?php
$user_name = 'USERACCOUNT';
$page_is = "http://www.flickr.com/photos/$user_name/page1/";
$page = file_get_contents($page_is);
$pages_number = explode('class="Paginator', $page);
$pages_value = preg_replace('/.*(\d+)<\/a>\n\t\t<a.*?class="Next">.*/s', '$1', $pages_number[1]);
settype($pages_value, "integer");
$pages_value++; //increase because page starts at page1
for ($count_at =1; $count_at < $pages_value; $count_at++) {
$page_is = "http://www.flickr.com/photos/$user_name/page$count_at/";
$page = file_get_contents($page_is);
$pattern = '/<table width="100%" cellspacing="0" cellpadding="0" class="PhotoStream ps-photos-only">/';
$patterns[] = '/\n/';
$replacements[] = '';
$patterns[] = '/\t/';
$replacements[] = '';
$patterns[] = '/<tr .*?>/';
$replacements[] = '';
$patterns[] = '/<td.*?>/';
$replacements[] = '';
$patterns[] = '/<\/tr>/';
$replacements[] = '';
$patterns[] = '/<\/td>/';
$replacements[] = '';
$patterns[] = '/<table .*?>/';
$replacements[] = '';
$patterns[] = '/<span .*?>/';
$replacements[] = '';
$patterns[] = '/<\/span>/';
$replacements[] = '';
$patterns[] = '/<\/table>/';
$replacements[] = '';
$patterns[] = '/<a .*?>/';
$replacements[] = '';
$patterns[] = '/<\/a>/';
$replacements[] = '';
$patterns[] = '/<(h\d).*?>.*?<\/\1>/';
$replacements[] = '';
$patterns[] = '/<\/div>/';
$replacements[] = '';
$patterns[] = '/<p.*?>.*?<\/p>/';
$replacements[] = '';
$patterns[] = '/<script.*?>.*?<\/script>/';
$replacements[] = '';
$patterns[] = '/(<img src=".*?>)<img src=".*?\.gif" .*?>/';
$replacements[] = '$1';
$patterns[] = '/<div.*?>/';
$replacements[] = '';
$patterns[] = '/(<img src=".*?>).*?(<)/';
$replacements[] = '<div class="img">$1' . "\n" . '$2';
$patterns[] = '/(<img src=".*?>).*?(<)/';
$replacements[] = '<div class="img">$1' . "\n" . '$2';
$patterns[] = '/<div class="img"><div class="img">/';
$replacements[] = '<div class="img">';
$patterns[] = '/\s\s/';
$replacements[] = '';
$page = preg_replace($patterns, $replacements, $page);
$page = preg_replace('/<tr>pretty lat\/long/', '', $page);
$images[] = $page;
}
$page = implode($images);
$page = preg_split('<br clear="all" />', $page);
$page = preg_split('<div class="img">', $page[0]);
$total = count($page);
for ($i = 1; $i < $total; $i++) {
$page[$i] = str_replace('><img', '<img', $page[$i]);
$page[$i] = preg_replace('/\/>\n</', '/>' . "\n", $page[$i]);
$page[$i] = preg_replace('/"class="/', '" class="', $page[$i]);
$page[$i] = preg_replace('/border="0" \/>/', 'border="0" ' . "id=\"image_$i\" />", $page[$i]);
$width[$i] = preg_replace('/.* width="(\d+)".*/', "$1", $page[$i]);
$height[$i] = preg_replace('/.* height="(\d+).*"/', "$1", $page[$i]);
$page[$i] = preg_replace('/ width="\d+"/', ' width="' . $width[$i]/1.5 . '"', $page[$i]);
$page[$i] = preg_replace('/ height="\d+"/', ' height="' . $height[$i]/1.5 .'"', $page[$i]);
}
unset($page[0]);
unset($page[1]);
shuffle($page);
echo $page[1];
echo $page[2];
echo $page[3];
echo $page[4];
?>
</div>
</body>
</html>