Php 获取远程服务器相同前缀图片地址

发布网友 发布时间:2022-04-20 07:57

我来回答

2个回答

热心网友 时间:2022-04-07 10:54

写出下面的源码,php远程抓取图片小程序。可以读取css文件并抓取css代码中的背景图片,下面这段代码也是针对抓取css中图片而编写的。
<?php<http://hounwang.com/lesson.html>
header("Content-Type: text/html; charset=utf-8");
error_reporting(E_ERROR|E_WARNING);
//全局配置
$fromFile = "aaa.css"; //要抓取的文件
$savePath = "ttttttttt"; //保存路径
$fromDomain = "http://www.xxx.com/"; //要抓取的域名
//读取css样式并且分离出所有image的url
$str = file_get_contents($fromFile);
$strArr = explode("url(",$str);
$i = 0;
foreach($strArr as $val){
$val1 = explode(")",$val);
if(strpos($val1[0],'jpg')||strpos($val1[0],'png')||strpos($val1[0],'gif'))
$imgUrl[$i++] = $val1[0];
}
//PS:上面可以用正则的,但是我觉得这样也不错
//开始抓取
foreach($imgUrl as $url){
if($url=="") continue;
$filename = $savePath.$url;
$url = $fromDomain.$url;
getImage($url,$filename);
}
function getImage($url,$filename){
ob_start();
$context = stream_context_create(
array (
'http' => array (
'follow_location' => false // don't follow redirects
)
)
);
//请确保php.ini中的fopen wrappers已经激活
readfile( $url,false,$context);
$img = ob_get_contents();
ob_end_clean();
$fp2 = @fopen($filename,"a");
fwrite($fp2,$img);
fclose($fp2);
echo $filename." ok √<br/>";
}
?>
然后,你指定的文件夹下面都是图片
需要设置一个域名或者是使用IP进行访问然后将image输出图片的地址替换成带有域名或者是IP的imageURL服务路径才能正常访问,否则是无法访问的。

更多问题到问题求助专区《http://bbs.hounwang.com/》

热心网友 时间:2022-04-07 12:12

提供一个思路,可能办法笨一点。用file_get_contents把远程服务器上所有的图片保存到本地,然后获取图片名称进行筛选............
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com