php正则表达式之正则字符中的图片地址

  1. if (preg_match_all("/http://[^ "']+[.jpg|.gif|.jpeg|.png]+/ui",stripcslashes($content),$aliurl)){
  2. $i=0; //多个文件++
  3. while(list($key ,$v) = each($aliurl[0])){
  4. //echo $v."<br />";
  5. $filetype = pathinfo($v, PATHINFO_EXTENSION); //获取后缀名
  6. $ff = @file_get_contents($v); //获取2进制文件内容
  7. if(!stripos($v,"lao8.org")){//判断是否是自己网站下的图片
  8. if (!emptyempty($ff)){ //获取到文件就执行下面的操作
  9. $dir = "upload/".date("Ymd")."/";//指定新的存储路径
  10. if (!file_exists($dir)){//判断目录是否存在
  11. @mkdir($dir,511,true); //创建多级目录,511转换成十进制是777具有可执行权限
  12. }
  13. $nfn = $dir.date("Ymdhis").$i.".".$filetype; //构建文件的新名字
  14. $nf = @fopen($nfn,"w"); //创建文件
  15. fwrite($nf,$ff); //写入文件
  16. fclose($nf); //关闭文件
  17. $i++; //多文件++
  18. echo "<img src="".$nfn."">";
  19. $content = str_replace($v,$nfn, $content);//替换content中的参数
  20. }else{//获取不到图片则替换为默认图片
  21. $content = str_replace($v,http://www.111cn.net/banner/banner.gif, $content);//替换content中的参数
  22. }
  23. }
  24. }
  25. }