修改一段代码
下面这段代码怎么改成http://localhost/getallpic.php?url=xxx
url=后面的网址就是要提交的网址不用点提交按钮
麻烦知道的大哥直接给代码,谢了
下载网页中所有图片
网页url:
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 下载完毕;
}
?>
分享到:
------解决方案--------------------
function modify_build_url($params = array(), $url = null) {
//my_debug(current_url());
if (! $url) {
$url = $_server ['request_uri'];
}
$parts = parse_url ( $url );
if (! is_array ( $parts )) {
$parts = array ();
}
if (! array_key_exists ( 'host', $parts )) {
$parts ['host'] = $_server ['http_host'];
}
$gets = array ();
if (array_key_exists ( 'query', $parts )) {
$query = $parts ['query'];
parse_str ( $query, $gets );
}
if (! is_array ( $params )) {
$params = array ();
}
if (! is_array ( $gets )) {
$gets = array ();
}
foreach ( $params as $k => $v ) {
$gets [$k] = $v;
}
$path = null;
if (array_key_exists ( 'path', $parts )) {
$path = $parts ['path'];
}
if (! $path) {
$path = /;
}
$ret = sprintf ( http://%s%s?%s, $parts ['host'], $path, http_build_query ( $gets ) );
return $ret;
}
....