加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

WORDPRESS远程图片本地化实现程序

发布时间:2022-06-27 09:15:27 所属栏目:教程 来源:互联网
导读:wordpress博客发文章时如果带有图片不会自动下载而是使用原网站图片了,下面我们一起看看WORDPRESS远程图片本地化例子. 将远程图片本地化代码写入/wp-content/themes/twentyfourteen/主题的functions.php文件中即可,以后每次在wordpress发布文章时如果文章
  wordpress博客发文章时如果带有图片不会自动下载而是使用原网站图片了,下面我们一起看看WORDPRESS远程图片本地化例子.
 
  将远程图片本地化代码写入/wp-content/themes/twentyfourteen/主题的functions.php文件中即可,以后每次在wordpress发布文章时如果文章中含有外链图片就会自动本地化了,无需任何设置操作非常方便,代码如下:
 
  // 远程图片本地化
  add_filter(‘content_save_pre’, ‘auto_save_image’);
  function auto_save_image($content){
  $upload_dir = wp_upload_dir(date(‘Y/m’));
  $upload_path = $upload_dir['path'];
  $upload_url_path = $upload_dir['url'];
  require_once (“../wp-includes/class-snoopy.php”);
  $snoopy_Auto_Save_Image = new Snoopy;
  $img = array();
  if (!emptyempty($_REQUEST['post_title']))
  $post_title = wp_specialchars(stripslashes($_REQUEST['post_title']));
  $text = stripslashes($content);
  preg_match_all(“/ src=(\”|\’){0,}(http:\/\/(.+?))(\”|\’|\s)/is”, $text, $img);
  $img = array_unique(dhtmlspecialchars($img[2]));
  foreach ($img as $key => $value){
  set_time_limit(180); //每个图片最长允许下载时间,秒
  if(str_replace(get_bloginfo(‘url’), “”, $value) == $value && str_replace(get_bloginfo(‘home’), “”, $value) == $value){
  $fileext = substr(strrchr($value, ‘.’), 1);
  $fileext = strtolower($fileext);
  if($fileext == “” || strlen($fileext) > 4)
  $fileext = “jpg”;
  $savefiletype = array(‘jpg’, ‘gif’, ‘png’, ‘bmp’);
  if (in_array($fileext, $savefiletype)){
  if($snoopy_Auto_Save_Image->fetch($value)){
  $get_file = $snoopy_Auto_Save_Image->results;
  }else{
  echo “error fetching file: ” . $snoopy_Auto_Save_Image->error . “<br>”;
  echo “error url: ” . $value;
  die();
  }
  $filetime = time();
  $filepath = “/” . $upload_path; //图片保存的路径目录
  $filename = substr($value, strrpos($value, ‘/’), strrpos($value, ‘.’) – strrpos($value, ‘/’));
  $fp = @fopen(“..” . $filepath . $filename . “.” . $fileext, “w”);
  @fwrite($fp, $get_file);
  fclose($fp);
  $wp_filetype = wp_check_filetype($filename . “.” . $fileext, false);
  $type = $wp_filetype['type'];
  $post_id = (int)$_POST['temp_ID2'];
  $title = $post_title;
  $url = $upload_url_path . $filename . “.” . $fileext;
  $file = $_SERVER['DOCUMENT_ROOT'] . $filepath . $filename . “.” . $fileext;
  $attachment = array(‘post_type’ => ‘attachment’,
  ‘post_mime_type’ => $type,
  ‘guid’ => $url,
  ‘post_parent’ => $post_id,
  ‘post_title’ => $title,
  ‘post_content’ => ”,
  );
  $id = wp_insert_attachment($attachment, $file, $post_parent);
  $text = str_replace($value, $url, $text); //替换文章里面的图片地址
  }
  }
  }
  $content = AddSlashes($text);
  remove_filter(‘content_save_pre’, ‘auto_save_image’);
  return $content;
  }
  function dhtmlspecialchars($string){
  if(is_array($string)){
  foreach($string as $key => $val){
  $string[$key] = dhtmlspecialchars($val);
  } //开源软件:phpfensi.com
  }else{
  $string = str_replace(array(‘&’, ‘”‘, ‘<‘, ‘>’), array(‘&’, ‘"’, ‘<’, ‘>’), $string);
  if(strpos($string, ‘&#’) !== false) {
  $string = preg_replace(‘/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/’, ‘&\\1′, $string);
  }
  }
  return $string;
  }。
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读