Gunakan php untuk memuat turun secara berkumpulan imej halaman web ke contoh kod tempatan

PHP中文网
Lepaskan: 2023-02-28 09:34:01
asal
3965 orang telah melayarinya

Kami kini perlu menyalin kandungan dengan gambar di tapak web orang lain ke tapak web kami sendiri, jadi saya perlu memuat turun gambar dari tapak web orang lain, kemudian simpannya secara setempat, dan kemudian gantikan alamat gambar dalam kandungan dengan tempatan kami yang. Di sini kita perlu Hanya menggunakan tiga fungsi preg_match_all, file_get_contents, dan str_replace dalam php.

<script>ec(2);</script>
Salin selepas log masuk

Saya menyalin artikel dan mendapati bahawa laluan imej adalah daripada tapak web orang lain. Bagaimanakah saya boleh memuat turun imej ini ke tempatan dengan satu klik dan mengubah suainya kepada laluan setempat?

<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE"> 代码如下</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy(&#39;copy6124&#39;)">复制代码</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id=copy6124>/**
 * 获取替换文章中的图片路径
 * @param string $xstr 内容 采集网页的content
 * @param string $keyword 创建照片的文件名 我写upimg
 * @param string $oriweb 网址 一般写null
 * @return string
 * 
 */
function replaceimg($xstr,$keyword, $oriweb){ 
 $basedir = dirname(__FILE__);
 
    //保存路径
    $d = date(&#39;Ym&#39;, time());
    $dirslsitss = $basedir.&#39;/../uploads/&#39;.$keyword.&#39;/&#39;.$d;//分类是否存在
    if(!is_dir($dirslsitss)) {
        @mkdir($dirslsitss, 0777);
    }
    //匹配图片的src
    preg_match_all(&#39;#<img.*?src="([^"]*)"[^>]*>#i&#39;, $xstr, $match);
    foreach($match[1] as $imgurl){
        $imgurl = $imgurl;
        if(is_int(strpos($imgurl, &#39;http&#39;))){
            $arcurl = $imgurl;
        } else {
            $arcurl = $oriweb.$imgurl;        
        }
        $img=file_get_contents($arcurl);
        if(!empty($img)) {
            //保存图片到服务器
            $fileimgname = time()."-".rand(1000,9999).".jpg";
            $filecachs=$dirslsitss."/".$fileimgname;
            $fanhuistr = file_put_contents( $filecachs, $img );
            $saveimgfile = "/uploads/$keyword"."/".$d."/".$fileimgname;
            $xstr=str_replace($imgurl,$saveimgfile,$xstr);
        }
    }
    return $xstr;
}</td> </tr> </table></td> </tr> </table>
Salin selepas log masuk
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan