最简单的博客程序PHP,php实现的简单的csdn博客文章抓取

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");

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值