php不会正则的痛
不会正则下载暴漫好痛苦,唯一的正则是网上找的,最后还是用explode来处理了,小弟新人,求大牛改正。
不会正则下载暴漫好痛苦,唯一的正则是网上找的,最后还是用explode来处理了,小弟新人,求大牛改正。
<?php
/**
* 正则表达式匹配需要的图片
* @return ArrayIterator $arr
*/
function pregIMG($str){
//$str ='<a href="/articles/7442969" target="_blank"><img alt="没标题" src="http://ww3.sinaimg.cn/large/ddc635dfjw1eet68xwz1yj20dw0h475n.jpg" style="width:460px" /></a>';
$pattern='/<img.+src=\"(.+\.jpg)\"?.+>/i';
preg_match_all($pattern,$str,$matchs);
return $matchs;
}
/**
* 查找某个页面的jpg
*/
function getIMG($url,$dir){
if (empty($url)) return false;
$contents = file_get_contents($url);
$data = pregIMG($contents);
$jpgs = $data[1];
unset($data);
$data = array();
foreach ($jpgs as $k => $v){
$t = explode('/', $v);
if ($t[3] == 'large'){
$data[$k] = $v;
}
}
if(!file_exists($dir) || !is_dir($dir)){
mkdir($dir,0777);
}
$num = 1;
foreach ($data as $v){
copy($v, $dir.'/'.time(). rand(10,100).'.jpg');
usleep(1);
$num++;
}
return $num;
}
function getBaoZou($page=1){
$url = "http://baozoumanhua.com/tucao/fresh/page/".$page."?sv=1395827058";
$dir = "public";
return getIMG($url, $dir);
}
function getMoreBaoZou($page){
//下载前10页
$num = 0;
for ($i = 1;$i < $page; $i++){
$num += getBaoZou($i);
}
echo '一共下载了'.$num.'张暴走漫画';
}
getMoreBaoZou(10);//获取前10页的暴走漫画
?>
- 上一篇:合纵连横,记录集超强处理函数array_column的升级
- 下一篇:简单的冒泡排序
精彩图集
精彩文章







