>백엔드 개발 >PHP 튜토리얼 > 修改一段代码,该怎么处理

修改一段代码,该怎么处理

WBOY
WBOY원래의
2016-06-13 12:35:30886검색

修改一段代码
下面这段代码怎么改成http://localhost/GetAllPic.php?url=xxx
url=后面的网址就是要提交的网址不用点提交按钮
麻烦知道的大哥直接给代码,谢了
require_once 'DownImage.class.php';
?>


下载网页中所有图片



网页URL:



//单击“提交”按钮后才有后面的图片下载处理
if($_POST['submit'] != NULL){
 $url=$_POST['url'];
//分析网页的URL,取出网页所属的主机(host)URL,因为很多图片URL是相对路径,必须在前面加上主机的URL.
$rs=parse_url($url);
$main_url = $rs['host'];$baseurl = substr($url,0,strrpos($url,'/')+1);
//读取网页内容。在使用file_get_contents函数时,后面的两个参数是可选参数,例如如果使用代理服务器来连接Internet的话,那就必须带上$context参数,代理服务器的具
//体设置在选项变量$opts中,如$opts = array('http' => array('proxy'=>'','request_fulluri'=>true))来设置代理服务器选项。一般情况下后两个参数可以省略
$opts=array('http' => array('request_fulluri'=> true));
$context = stream_context_create($opts);
$message = file_get_contents($url,false, $context);
//$reg中设置正则表达式。
$reg = "/ 修改一段代码,该怎么处理 /i";
//函数preg_match_all负责在字符串$message中找到所有匹配正则表达式的字符串,并将结果保存在数组$matches中,如果匹配不成功,则数组的长度为0
preg_match_all($reg,$message,$matches);
for($i=0; $i //取出所有匹配结果。$matches为多维数组,维数的多少与正则表达式中的小括弧“()”的多少有关,此处只出现了一对,则为2维数组,$matches[0]中始终保存的是匹配的字符串,而
//$matches[1]则保存的是匹配正则表达式第一对括弧所匹配的内容,此处即为图片的URL
$matches[1][$i]=strtolower($matches[1][$i]);
//如果图片为相对路径,则将其转换为全路径。有两种相对路径,第一种是,如果第一个字符为"/",那是相对于host来说的相对路径,此时只需要加上host的URL即可转化为完全的URL。
//第二种是,相对于当前页面来说的相对路径,必须加上当前URL(除了文件名外,即变量$baseurl中的值)
if(!strpos('a'.$matches[1][$i],'http')){
 if(strpos('a'.$matches[1][$i],'/')==1)
 $matches[1][$i]='http://'.$main_url.$matches[1][$i];
 else $matches[1][$i]=$baseurl.$matches[1][$i];
 }
}
//调用array_unique函数过滤重复的图片URL
$img_array=array_unique($matches[1]);
//实例化图片下载类GetImage
$Gimg = new DownImage();
for($i=0; $i //在source属性中设置下载目标图片的URL,save_to中设置图片的保存目录。调用download方法开始下载,默认为使用cURL库进行下载,以$Gimg->download('gd')的形式调用download方法时

,则使用图像函数方式进行图片下载。
$Gimg->source = $img_array[$i];
$Gimg->save_to = './data/';
$FILE = $Gimg->download();
 }
 echo "下载完毕";
}
?>



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.