百度网盘:​​http://pan.baidu.com/s/1pJz7EER​

代码:


<?PHP
header("content-type:text/html;charset=utf-8");
/**Base Function***/
// exit;
/**
* get远程文档
* @access public
* @param string $url 远程url
* @return mixed
*/
function GetUrl($url) {
if (function_exists('file_get_contents')){
return file_get_contents($url);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}

/**
* 采集远程文件
* @access public
* @param string $remote 远程文件名
* @param string $local 本地保存文件名
* @return mixed
*/
function curlDownload($remote,$local) {
$cp = curl_init($remote);
$fp = fopen($local,"w");
curl_setopt($cp, CURLOPT_FILE, $fp);
curl_setopt($cp, CURLOPT_HEADER, 0);
curl_exec($cp);
curl_close($cp);
fclose($fp);
}

/**采集代码开始干活的搞起**/
$BaseUrl = 'http://www.a-li.com.cn/';
$EmotionUrl = $BaseUrl.'download/qq_emotion/index.php?page=';

//采集页面的开始与结束
$BeginPage = 1;
$EndPage = 37;//总页面数;阿狸官方站更新后 总页面数可能会变化 在此处配置

//$_SESSION['page'] = null;exit;//不注释该项重新初始化

//采用session记录采集到哪个页面
if(!$_SESSION['page']) {
$Page = $BeginPage;
$_SESSION['page'] = $Page;
}else {
$Page = $_SESSION['page'] + 1;
$_SESSION['page'] = $Page;
}
if($Page>$EndPage) {exit('活已干完!');}

//开始采集
$url = $EmotionUrl.$Page;
$string = GetUrl($url);
while(!$string) { //while 循环保证采集无误
sleep(3);
$string = GetUrl($url);
}
//正则匹配采集到的页面中的阿狸gif图片信息
$match = array();
$string = preg_replace('/<!--.*\s*.*-->/i','',$string);//去除html里的注释段 可以删掉
preg_match_all('/<img src="(data\/attachment.*\.gif)"\s+alt="(.*)"\s+.*\s+\/>/i',$string,$match,PREG_SET_ORDER);

//采集后的文件存储位置 检测文件夹不存在就创建
if(!is_dir('./ali/')) {
mkdir('./ali/');
}

//检测匹配并循环下载采集到的gif图到与该PHP代码文件同级目录下的ali目录中
if($match) {
foreach($match as $key=>$value) {
$imgUrl = $BaseUrl.$value[1];
$imgName = './ali/'.preg_replace('/\./','',$value[2]).'.gif';//使用匹配到的img标签中的alt作为本地保存gif图的文件名
curlDownload($imgUrl,$imgName);
}
}else {
exit('匹配信息出错');
}
echo '<p>采集第'.$Page.'页中的阿狸gif图片完成。</p>';
echo '<p>1秒后继续自动执行下一个页面</p>';
echo '<script>setTimeout(function () {window.location.reload(true);},1000);</script>';
?>


几点注意:应当注意2个函数

GetUrl($url)  与  curlDownload($remote,$local)

代码一:


<?php
function curlDownload($remote,$local) {
$cp = curl_init($remote);
$fp = fopen($local,"w");
curl_setopt($cp, CURLOPT_FILE, $fp);
curl_setopt($cp, CURLOPT_HEADER, 0);
curl_exec($cp);
curl_close($cp);
fclose($fp);
}

curlDownload('http://blog.jjonline.cn/Upload/image/201408/20140810151040.gif','aa.gif');

?>


代码二:


<?php
function GetUrl($url) {
if (function_exists('file_get_contents')){
return file_get_contents($url);
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}

echo GetUrl("http://blog.jjonline.cn/phptech/175.html");
?>


起点在哪,或许选择不了。重要的是,你追求的终点在哪!