set_time_limit(0);
header("Content-Type:text/html; charset=utf-8");
///get url source file
function get_url_content($url)
{
if(extension_loaded('curl'))
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);
}
else
{
$content = file_get_contents($url);
}
!$content && die("get $url content error.");
return $content;
}
//csdn blog
$blogname = empty($_POST['blogname']) ? $_GET['blogname'] : $_POST['blogname'];
$blog_url = "http://blog.csdn.net/$blogname";
$blog_content = get_url_content($blog_url);
//blog title
$reg_pattern = '/
/s*(.*)/s*/title>/';preg_match($reg_pattern, $blog_content, $matches);
if($matches)
{
$blog_title = $matches[1];
echo "
CSDN BLOG : $blog_title
";}
/blog archive by month
$reg_pattern = '/
(/d+年/d+月/(/d+/))/a>/li>/';if(preg_match_all($reg_pattern, $blog_content, $matches))
{
$blog_archive = $matches[1];
$blog_yy_mm = $matches[2];
}
else
die("get blog archive error");
$page = empty($_GET['page']) ? 1 : intval($_GET['page']);
pages
$count = count($blog_archive);
$php_self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
$php_self .= '?blogname='.$blogname.'&page=';
$page_range = range(1, $count, 1);
foreach($page_range as $perpage)
{
$page_title = $blog_yy_mm[$perpage - 1];
if($perpage == $page)
echo $page_title." ";
else
echo " ";
}
echo "
";
list blog entries
$archive_url = 'http://blog.csdn.net'.$blog_archive[$page - 1];
$archive_content = get_url_content($archive_url);
$order = array("/r/n", "/n", "/r");
$replace = '';
$archive_content = str_replace($order, $replace, $archive_content);
$archive_content = str_replace("阅读全文","/n阅读全文",$archive_content);
list blog entry
$reg_pattern = '/
for($i = 0; $i < $count; $i++)
echo "
{$matches[3][$i]}";echo "
";}
else
die("list entry error");
?>