從建站 到營銷 全程無憂!
您當前的位置:首頁 > 新聞資訊 > 企業建站常識

UCMS添加文章正文中的遠程圖片自動保存到本地方法

發表時間:2021-06-03 14:39:48    瀏覽:704 次

UCMS添加文章正文中的遠程圖片自動保存到本地方法

遠程圖片保存到本地全欄目可用(BY:玉龍 QQ:33942704)


使用方法:把下列代碼全部復制到ucms/admin_config.php文件里面


//保存遠程圖片到本地

$query = $GLOBALS['db'] -> query("SELECT * FROM ".tableex('channel')." order by corder asc"); //列出所有欄目
$all_category_hook = $GLOBALS['db'] -> fetchall($query);
foreach($all_category_hook as $key=>$val) {
          admin_hook($val['cid'],'addposted;editposted','auto_save_image'); //使用鉤子
}
//開始保存圖片
function auto_save_image() {
    //保存路徑
$content = $_POST['content'];
$myweb = "http://".$_SERVER["HTTP_HOST"];//本站域名下文件不保存

$d = date('Ymd', time());//按日期生成文件夾
$dirslsitss = $_SERVER ['DOCUMENT_ROOT'].'/uploadfile/image/'.$d;//分類是否存在
if(!file_exists($dirslsitss)){
mkdir($dirslsitss,0777,true);
}

//匹配圖片的src
preg_match_all('#<img.*?src="([^"]*)"[^>]*>#i', $content,$match);
foreach($match[1] as $imgurl){
$imgurl = $imgurl;

//如果是本站圖片則跳過下載
if(is_int(strpos($imgurl,'http')) && strpos($imgurl,$myweb) === false){

$arcurl = $imgurl;
//$img=file_get_contents($arcurl);//下載圖片
$img=getImg($arcurl);//curl下載圖片,支持https
//根據圖片的路徑獲取圖片屬性值
$imgAttr = get_headers($arcurl, true );
//取得圖片后綴名
$itype=$imgAttr['Content-Type'];
if(!preg_match("#\.(jpg|gif|png)#i",$itype))
{
if($itype=='image/gif')
{
$itype = ".gif";
}
else if($itype=='image/png')
{
$itype = ".png";
}
else
{
$itype = '.jpg';
}
}

if(!empty($img)) {
//保存圖片到服務器
$fileimgname = getRandChar(10).$itype;//生成10位數的隨機字符文件名
$filecachs=$dirslsitss."/".$fileimgname;
$fanhuistr = file_put_contents($filecachs, $img );
$saveimgfile = "/uploadfile/image/".$d."/".$fileimgname;
$content=str_replace($imgurl,$saveimgfile,$content);//替換內容中圖片地址
}
}
global $thisid;
$query = $GLOBALS['db'] -> query("update ".tableex('article')." SET content='".$content."' WHERE id=".$thisid."");
   }
}
//生成隨機字符串
function getRandChar($length){
$str = null;
$strPol = "0123456789abcdefghijklmnopqrstuvwxyz";//小寫字母以及數字
$max = strlen($strPol)-1;
   
for($i=0;$i<$length;$i++){
$str.=$strPol[rand(0,$max)];
  }
  return $str;
}
//curl下載圖片
function getImg($url) {
   $ch = curl_init ();
   curl_setopt ( $ch, CURLOPT_CUSTOMREQUEST, 'GET' );
   curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );//跳過ssl驗證
   curl_setopt ( $ch, CURLOPT_URL, $url );
   ob_start ();
   curl_exec ( $ch );
   $return_content = ob_get_contents ();
   ob_end_clean ();
   return $return_content;
}

 

上一篇:蘋果電腦Mac安裝 Windows 10 雙系統教程

下一篇:壓縮清理解決mssql數據庫日志(ldf文件)過大問題的辦法

 
百度搜索推廣 |公司簡介 |人才招聘 |付款方式 |聯系方式
恩施市百捷在線網絡科技有限公司 Copyright ? 2012-2021 網址:www.danny88.com
電話:0718-8262386 傳真:0718-8262386 聯系人:鄒經理
地址:恩施市火車站萬福國際寫字樓613 Email:zou@esbaidu.com 備案號:鄂ICP備16001060號-8
公安備案信息 鄂公網安備 42280102000263號 網絡經濟主體信息
日本精品久久久久9999