> php教程 > php手册 > php不会正则的痛

php不会正则的痛

WBOY
풀어 주다: 2016-06-06 19:33:35
원래의
1260명이 탐색했습니다.

不会正则下载暴漫好痛苦,唯一的正则是网上找的,最后还是用explode来处理了,小弟新人,求大牛改正。 无 ?php/** * 正则表达式匹配需要的图片 * @return ArrayIterator $arr */function pregIMG($str){//$str ='a href="/articles/7442969" target="_blank"i

不会正则下载暴漫好痛苦,唯一的正则是网上找的,最后还是用explode来处理了,小弟新人,求大牛改正。
<?php
/**
 * 正则表达式匹配需要的图片
 * @return ArrayIterator $arr
 */
function pregIMG($str){
	//$str ='<a href="/articles/7442969" target="_blank"><img alt="没标题" src="http://www.68idc.cn/help/uploads/allimg/160322/2016161356-0.jpg"   style="max-width:90%" /></a>';
	$pattern='/<img .+src=\"(.+\.jpg)\"?.+ alt="php不会正则的痛" >/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页的暴走漫画
?>
로그인 후 복사
php不会正则的痛
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿