正则提取文章中的图片,并替换、移动图片目录

2013年08月19日 11:42 by:老修

备份,方便以后查询,看懂的稍加修改可以利用,看不懂的看热闹。

上传图片时,上传的图片并没有全部用到,那么可以设置上传时只存到临时文件夹里面,文章发布的时候把真正用到的图片移动到有用的目录里,这样定期清理无用目录就可以了。

  1. //转移临时文件夹中的图片
  2. $imgssss = preg_match_all("/linshi/[^s'"]+.jpg|png|gif|jpeg{1}/ui",$content,$imgss);
  3. $i=1;
  4. foreach($imgss as $aimg){
  5. if(is_string($aimg)){
  6. if (file_exists($aimg)){
  7. $newdir = "upload/".date("ymdhis")."/";
  8. if (!file_exists($newdir)){
  9. mkdir($newdir,0755,true);
  10. }
  11. $newname = $newdir.date("ymdhis").$i.".".pathinfo($aimg,PATHINFO_EXTENSION);
  12. rename($aimg,$newname);
  13. $content = str_replace($aimg,$newname, $content);
  14. }
  15. $i++;
  16. }elseif(is_array($aimg)){
  17. foreach($aimg as $imga){
  18. if (file_exists($imga)){
  19. $newdir = "upload/".date("ymdhis")."/";
  20. if (!file_exists($newdir)){
  21. mkdir($newdir,0755,true);
  22. }
  23. $newname = $newdir.date("ymdhis").$i.".".pathinfo($imga,PATHINFO_EXTENSION);
  24. rename($imga,$newname);
  25. $content = str_replace($imga,$newname, $content);
  26. }
  27. $i++;
  28. }
  29. }
  30. }

如果只是移动单张图片比较简单:

  1. $newdir = "upload/".date("ymdhis")."/";
  2. if (!file_exists($newdir)){
  3. mkdir($newdir,0755,true);
  4. }
  5. $newname = $newdir."s_".date("ymdhis").".".pathinfo($upimgurl,PATHINFO_EXTENSION);
  6. rename($upimgurl,$newname);

最后编辑时间:0000-00-00 00:00:00