Rumah pembangunan bahagian belakang tutorial php php实现的css文件背景图片下载器代码_php技巧

php实现的css文件背景图片下载器代码_php技巧

May 16, 2016 pm 08:32 PM
fail css php imej latar belakang

本文实例讲述了php实现的css文件背景图片下载器代码。分享给大家供大家参考。具体实现方法如下:

下载css文件里面的背景图片是我们这些盗版份子长期搞的事情,下载个css图片下载器常出现各种广告弹窗,实在扛不住。这里就提供了一个php版的css文件背景图片下载器给大家。

把文件放到php程序目录 dos下面 php.exe cssImages.php 0 http://www.xxxx.com/css/style.css \images\

先在php程序目录建个images文件夹,呵呵,贴代码:

复制代码 代码如下:
/**  
*@阿唐 2013-4-6 22:19   
*@呵呵  
*/   
set_time_limit(0);   
error_reporting(E_ERROR);   
if($argc print_r('   
 +-------------------------------------------------+   
Usage: php '.$argv[0].' css路径类型(0为远程、1为本地) css文件路径 图片保存目录   
Example:    
php.exe '.$argv[0].' 0 http://www.xxx.com/index.css \images\   
 +-------------------------------------------------+   
');   
exit();   
}   
//远程css   
if($argv[1]==0){   
    $host = getParse($argv[2],'host');   
    $savePath = getSavePath($argv[3]);   
    $images = getCssImagesArray($argv[2]);   
    //print_r($images);   
    $imagesurls = getImagesLinks($images,$argv[2]);   
    imagesDowner($imagesurls);   
}   
//本地css开始   
if($argv[1]==1){   
    //懒得写了,呵呵,这个没多大意义   
}   
/*  
 * css图片分析函数  
 * $csspath  css文件路径  
 */   
function getCssImagesArray($csspath){   
    $cssFile = file_get_contents($csspath);   
    $images = array();   
    preg_match_all("|url\((.+)\)|i",$cssFile,$images);   
    $images = $images[1];   
    return $images;   
}   
/*  
 * css文件相对目录处理函数  
 * $path 路径  
 */   
function getNocssPath($path){   
    global $host;   
    $tempLinkmages='';   
    //相当路径获取   
    $tempPath = explode('/',$path);   
    for($i=1;$i         $tempLinkmages .= $tempPath[$i].'/';   
    }   
    $xdImage = $host.$tempLinkmages;   
    return $xdImage;   
    //相当路径获取   
}   
   
/*  
 * 图片连接获取函数  
 * $images array 所有需要获取的images数组  
 * cssLink css文件链接  
 */   
function getImagesLinks($imagesArray,$cssLink){   
global $host;   
$urlImages = array();   
    foreach($imagesArray as $key=>$value){   
        if(pathCheck($value)){   
            if((!in_array(($host.$value),$urlImages))){   
                $urlImages[$key] = $host.$value;   
            }   
        }else{   
            if((!in_array((getNocssPath(getParse($cssLink,'path')).$value),$urlImages))){   
                $urlImages[$key] = getNocssPath(getParse($cssLink,'path')).$value;   
            }   
        }   
    }   
    return $urlImages;   
}   
   
/*  
 * 图片获取  
 * $urlImages需要下载的图片数组  
 */   
function imagesDowner($urlImages){   
//print_r($urlImages);   
    foreach($urlImages as $key=>$value){   
        $urlImagesOk[$key] = str_replace('//','/',$value);   
        $urlImagesOk[$key] = str_replace('"','',$urlImagesOk[$key]);   
        $urlImagesOk[$key] = str_replace("'",'',$urlImagesOk[$key]);   
        $urlImagesOk[$key] = 'http://'.$urlImagesOk[$key];   
        if(grabImage($urlImagesOk[$key],basename($urlImagesOk[$key]))){   
            print_r(   
basename($urlImagesOk[$key]).' 文件下载成功   
');   
        }else{   
            print_r(   
basename($urlImagesOk[$key]).'  下载失败   
');   
        }   
    }   
    //print_r($urlImagesOk);   
}   
/*  
 * 相对路径绝对路径判定函数  
 * $imageUrl 图片链接数组  
 * true 为绝对路径  
 * false 为相当路径  
 */   
function pathCheck($imageUrl){   
    if(preg_match('|^(\/)|',$imageUrl)){   
        return true;   
    }else{   
        return false;   
    }   
}   
   
/*  
 * 图片下载函数  
 * $url 图片链接  
 * $filename图片名字  
 */   
function grabImage($url, $filename){   
    global $savePath;    
    if($url == '') {   
        return false; //如果 $url 为空则返回 false;   
           
    }   
    $ext_name = strrchr($url, '.'); //获取图片的扩展名   
    if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {   
        return false; //格式不在允许的范围   
           
    }   
    if($filename == '') {   
        return false; //名称无效   
           
    }   
    //开始捕获   
    ob_start();   
    if(readfile($url)){   
        $img_data = ob_get_contents();   
        ob_end_clean();   
        $size = strlen($img_data);   
    }else{   
    ob_end_clean();   
    return false;   
    }   
    if(($local_file = fopen($savePath.$filename , 'a'))&&(fwrite($local_file, $img_data)))   
    {   
        fclose($local_file);   
        return true;   
    }   
}   
/*  
 * 保存目录  
 */   
function getSavePath($savepath){   
    $savePath = $savepath;   
    $savePath = dirname(__FILE__).$savePath;   
    return $savePath;   
}   
/*  
 * 解析url  
 */   
function getParse($host,$type){   
    $baseurl = parse_url($host);   
    return $baseurl[$type].'/';   
   
//echo $baseurl;   
}   
?>

希望本文所述对大家的PHP程序设计有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Muzium Dua Point: Semua Pameran dan Di Mana Mencari Mereka
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah Mencipta CakePHP Pengesah Mencipta CakePHP Sep 10, 2024 pm 05:26 PM

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

See all articles