完整可用的远程图片本地化(论坛里的FCK方式都不靠谱哦)

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

一向不发贴,不会用的请跟帖。谢谢你的支持。


  1. /**
  2. * 得到远程图片
  3. *
  4. * @accesspublic
  5. * @paramgoods_desc$goods_desc要处理的内容
  6. * @returnmix如果成功返回缩略图的路径,失败则返回false
  7. */
  8. function GetCurContent($goods_desc)
  9. {
  10. $body = stripslashes($goods_desc);
  11. $img_array = array();
  12. //$body = ereg_replace("HTTP://".$_SERVER['SERVER_NAME']."/","",$body);//将源文件进行替换
  13. preg_match_all("/src=[\"|'|\s]{0,}(http:\/\/([^>]*)\.(gif|jpg|png))/isU",$body,$img_array);
  14. $img_array = array_unique($img_array[1]);
  15. set_time_limit(0);
  16. $imgurl = IMAGE_DIR."/".date('Ym')."/body";
  17. $imgpath = ROOT_PATH.$imgurl;
  18. $millisecond = date("YmdHms");
  19. if (!file_exists($imgpath))
  20. {
  21. if (!make_dir($imgpath))
  22. {
  23. return false;
  24. }
  25. }
  26. else
  27. {
  28. foreach($img_array as $key =>$value)
  29. {
  30. $value = trim($value);
  31. $get_file = @file_get_contents($value);
  32. $rndfilename = $imgpath."/".$millisecond.$key.".".substr($value,-3,3);
  33. //$fileurl = "HTTP://".$_SERVER['SERVER_NAME']."/".$imgurl."/".$millisecond.$key.".".substr($value,-3,3);
  34. $fileurl = "/".$imgurl."/".$millisecond.$key.".".substr($value,-3,3);
  35. if($get_file)
  36. {
  37. $fp = @fopen($rndfilename,"w");
  38. @fwrite($fp,$get_file);
  39. @fclose($fp);
  40. }
  41. //echo $rndfilename."<br/>".$fileurl."<br/>";
  42. $body = ereg_replace($value,$fileurl,$body);
  43. }
  44. }
  45. $body = addslashes($body);
  46. //print_r($body);
  47. //exit();
  48. return $body;
  49. }
复制代码

调用方式:
在goods.php中,把所有$_POST['goods_desc']改成GetCurContent($_POST['goods_desc'])
当然,最后先用变量存起来,然后直接用就行了
下载的图片路径在images/年月/body中

支持的给我顶起啊!!
同时,出售ec的淘宝客程序,看得懂的人又需要的问我要哈。¥300.00元一套(不需要修改前台模板任何文件),前台html中没有任何淘客链接,停止百度k才是王道.本来想最近上个演示站,但本人今天晚上要飞广州,没有时间!

回答:
支持 ~~

支持一下



逼哥出手.公布自用的远程图片本地化做法.
该作法并不以插件形式做,不修改源代码.而是以单页形式独立调用数据库完成.效率相比极高.

如果你读得懂代码,基本可以确认上面做法是最好的本地化方法了.

如果你尝试过file_get_contents这个函数,你会发现这个函数十分不友好.FCK里别人做的插件也是用的这个函数.经常卡死.




图片.




不愧是热心版主,哈哈。顶你个。觉得好东东。

顶一个....



呵呵支持一下!CURL下载好很多
但也因该加入判断这样会更好:
  1. if(extension_loaded('curl'))//是否开启了CURL
  2. {
  3.    curl_download($url, $localfile);
  4. }
  5. else
  6. {
  7.   $getfile = file_get_contents($url);
  8. file_put_contents($localfile, $getfile);
  9. }

  10. function curl_download($remote,$local)
  11. {
  12. $cp = curl_init($remote);
  13. $fp = fopen($local,"w");
  14. curl_setopt($cp, CURLOPT_FILE, $fp);
  15. curl_setopt($cp, CURLOPT_HEADER, 0);
  16. curl_exec($cp);
  17. curl_close($cp);
  18. fclose($fp);
  19. }
复制代码

请问楼主的代码要粘贴到哪个文件里??

要贴在哪里用呢`??

另外是不是起文件名为wj_downimg_auto.php

我版本好像是2.70可以不
ninjapig 发表于 2010-11-3 15:40



对的.
可以.

不错,方法多种多样!继续哈!但楼上的不要说逼,没人逼你哦