PHP修改css文件中的背景图片并下载到本地
扒网站当中一般css中的图片扒不下来,这个脚本就是用来下载这些图片到本地的
流程
1、获取css文件路径
2、打开文件逐行读取判断是否包含需要的图片
2.1 包含则 -进行截取直接获取到相对路径
2.1.1 根据curl来文件流,fopne打开文件,fwrite写入文件
2.2不包含则跳出
<?php
/**
* Created by PhpStorm.
* User: 小狗蛋儿
* Date: 2018/3/19
* Time: 14:39
*
* 获取css文件下面所有的css文件
* 然后替换所有的background
*/ $dirname=dirname("D:\\ibwant\\new.css-13.css"); $root_url="xxxxxx"; //网站根目录 $rege="";
if (!is_dir($dirname)){
echo "不是目录".$dirname;
}else { $file=array(); $scandir = scandir($dirname);
foreach ($scandir as $value){
if (getExtends($value)=="css"){ $handle = fopen ($dirname."\\".$value, "r");
GetsSave($handle,$value); }else{
continue;
} }
} /**
* @param $files
* @return mixed
* 出现的位置
*/
function getExtends($files){
return pathinfo($files, PATHINFO_EXTENSION);
} /**
* @param $opens
* @param $names
* 获取指定文件的位置
*/
function GetsSave($opens,$names){
$fl=array();
//feof 判断检测文件是否到末尾
while(!feof($opens)){
$contents=fgets($opens);
if(strstr($contents,"/*tpa=")){
$fl[]=substr($contents,strpos($contents,"=")+1); }else{
continue;
}
}
getDows($fl);
fclose($opens);
} // $s="xxxx";
// echo strpos($s,"*"); function getDows($as){
$cas=array();
foreach ($as as $value){ if (substr($value,0,4)!="http"){
continue;
}else {
$nums = strpos($value, "*");
$cas[] = substr($value, 0, $nums);
}
}
Saveimg($cas); } function Saveimg($ims){
foreach ($ims as $values){
$contens=trim(strrchr($values,"/"),"/"); // $filenames=substr($contens,0,strpos($contens,"."));
$return_content = http_get_data($values);
//var_dump($return_content); $fp= @fopen($contens,"a");
fwrite($fp,$return_content); } } function http_get_data($url){
$ch=curl_init();
curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt ( $ch, CURLOPT_URL, $url );
ob_start ();
curl_exec ( $ch );
$return_content = ob_get_contents ();
ob_end_clean (); $return_code = curl_getinfo ( $ch, CURLINFO_HTTP_CODE );
return $return_content;
}
PHP修改css文件中的背景图片并下载到本地的更多相关文章
- css网页中设置背景图片的方法详解
在css代码中设置背景图片的方法,包括背景图片.背景重复.背景固定.背景定位等 用css设置网页中的背景图片,主要有如下几个属性: 1,背景颜色 {">说明:参数取值和颜色属性一样 ...
- vue webpack打包后.css文件里面的背景图片路径错误解决方法
资源相对引用路径 问题描述 一般情况下,通过webpack+vuecli默认打包的css.js等资源,路径都是绝对的. 但当部署到带有文件夹的项目中,这种绝对路径就会出现问题,因为把配置的static ...
- 动态修改css文件中,具体的class中的个别属性值。
function setStyleSheetObjCssClassProperty(pStyleSheetObj, pSelectorText, pProperty, pValue) { var pS ...
- css文件 如何使背景图片大小适应div的大小
对背景图片设置属性:background-size:cover;可以实现背景图片适应div的大小. background-size有3个属性: auto:当使用该属性的时候,背景图片将保持100% 的 ...
- HTML 或 CSS 文件中引用的图片文件移动到任意位置
对于一个套接字的输入操作,第一步通常涉及等待数据从网络到达,当所等待分组到达时,被复制到内核的某个缓冲区: 第二步就是把数据从内核缓冲区复制到应用进程缓冲区.通过 Session 的 createQu ...
- Taro,实现小程序在样式文件中导入背景图片
https://taro-docs.jd.com/taro/docs/static-reference.html 注意点是,控制你的图片大小,然后配置完limit后,把dist删掉,重新运行 npm ...
- CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中
body { margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; background-colo ...
- 用extract-text-webpack-plugin提取出来的css文件中背景图片url的不正确的问题
在一个main.js中require一个scss文件,scss文件中用了背景图片,图片url是用的相对路径,用extract-text-webpack-plugin插件提取出的css文件背景图片路径不 ...
- Vue项目打包发布后CSS中的背景图片不显示
相信有很多同学在学习vue的刚开始都遇到过项目打包发布后发现CSS中的背景图片不显示,具体如何解决只需要更改bind的配置即可 修改 build/utils.js 中的 generateLoaders ...
随机推荐
- 1个LED的亮度自动控制
控制任务和要求 通过程序控制LED的亮度按照要求变化 电路设计 程序设计 1 int bright_number = 0; //此变量用来表示LED的亮度 2 int bright_gap = 5; ...
- 【题解】[SDOI2016]征途
Link 题目大意:给定序列,将它划分为\(m\)段使得方差最小,输出\(s^2*m^2\)(一个整数). \(\text{Solution:}\) 这题我通过题解中的大佬博客学到了一般化方差柿子的写 ...
- Python 自动化测试全攻略:五种自动化测试模型实战详解
随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用. 与传统的手工测试技术相比,自动化测试 ...
- JavaCV FFmpeg采集摄像头YUV数据
前阵子使用利用树莓派搭建了一个视频监控平台(传送门),不过使用的是JavaCV封装好的OpenCVFrameGrabber和FFmpegFrameRecorder. 其实在javacpp项目集中有提供 ...
- Springcloud技术分享
Springcloud技术分享 Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot 框架,准确的说,它不是一个框架,而是一个大的容器,它将市面上较好的微服务框架集成进来 ...
- win10 home安装docker快速攻略
本文适用于win10 Home用户,专业版和企业版直接见官网.win7版本见Docker Toolbox. 安装清单 软件 说明 Docker Desktop Installer 步骤介绍页:http ...
- android中判断一个链接是否是有效的
private boolean isValid(String urlString) { try { URL url = new URL(urlString); return URLUtil.isVal ...
- 详解工程师不可不会的LRU缓存淘汰算法
大家好,欢迎大家来到算法数据结构专题,今天我们和大家聊一个非常常用的算法,叫做LRU. LRU的英文全称是Least Recently Used,也即最不经常使用.我们看着好像挺迷糊的,其实这个含义要 ...
- Linux系统安装JDK1.8
2020最新Linux系统发行版ContOS7演示安装JDK. 为防止操作权限不足,建议切换root用户,当然如果你对Linux命令熟悉,能够自主完成权限更新操作,可以不考虑此推荐. 更多命令学习推荐 ...
- 用算法去扫雷(go语言)
最初的准备 首先得完成数据的录入,及从扫雷的程序读取界面数据成为我的算法可识别的数据 其次是设计扫雷的算法,及如何才能判断格子是雷或者可以点击鼠标左键和中键. 然后将步骤2的到的结果通过我的程序实现鼠 ...