找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 82|回复: 0

[L/WNAMP] 实现简单的图片CDN

[复制链接]
发表于 2024-2-10 15:40 | 显示全部楼层 |阅读模式
   .htaccess文件内容:

   RewriteEngine On

   #RewriteCond %{HTTP_HOST}  ^t.boss.com$
   RewriteCond %{REQUEST_URI}  !^$
   #RewriteCond %{REQUEST_FILENAME}  ^.*\.(jpg|jpeg|png|gif)$  [NC]
   RewriteCond %{REQUEST_FILENAME}  !-d
   RewriteCond %{REQUEST_FILENAME}  !-f
   RewriteRule  ^(.*\.jpg)$   /sync_client.php?url=$1 [NC,QSA,L]

sync_client.php文件内容:

<?php
//var_dump($_GET['url']);
//echo '<img src="http://hazy.allalla.com/inc/logo.jpg">';


$filepath   = empty($_GET['url']) ? exit('no file') : $_GET['url'];
$filepath   = str_ireplace('\'', '', str_ireplace('"', '', $filepath));
$filepath   = str_ireplace('\\', '/', $filepath);
if(!is_file($filepath)){
    $dir        = dirname($filepath);
    $ext        = substr(strrchr( $filepath, '.' ), 1);
    if(!in_array($ext, array('jpg', 'jpeg', 'gif', 'png', 'bmp'))) exit('not allow file ext'); 

    $domain        = 'http://qqqiushi.com/';//源站,你的源站必须要允许此站点访问你的图片
    $url        = $domain . $filepath;

    $content    = file_get_contents_($url);
    if(strlen($content) < 20) exit('not allow content');

    if(!is_dir($dir)) mkdir($dir, 0777, true);

    file_put_contents($filepath, $content);
}
echo '<img src="/' . $filepath . '" />';

//获取URL的内容
function file_get_contents_($url)
{
    if(empty($url)) return false;
    
    $useragent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19';
    
    if(function_exists('curl_init')) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT,30);
        curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
        curl_setopt($ch, CURLOPT_REFERER, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $content = curl_exec($ch);
        curl_close($ch);
    }else{
        $content = file_get_contents($url);
    }

    return $content;
}

exit;
?>

就这么简单的几句话!放到根目录:会自动将图片文件和源站图片文件的目录结构保持一致。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|学习笔记

GMT+8, 2024-5-3 13:12 , Processed in 0.026761 second(s), 13 queries , APCu On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表