我用的是FckEditor 编辑器,可以支持直接从别人网页上,复制粘贴,不过图片却是别人的地址,我想问的是,如何能远程保存图片呢

解决方案 »

  1.   

    找到图片的地址,如<img src="地址" >把src="XXX"改成src="http://XX  从网络可以访问的地址"
      

  2.   

    找到图片的地址,如 <img src="地址" > 把src="XXX"改成src="http://XX  从网络可以访问的地址" 我不明白啊,我是菜鸟,大虾说清楚点可以么?
      

  3.   

    图片地址是从HTML指定的,
    打开HTML源文件,修改地址
      

  4.   

    保存的时候分析提交的内容 如有图片<img src="http://xx.xx.com/xx/xx.jpg">
    远程访问将该图片并将它保存到本地再将“<img src="http://xx.xx.com/xx/xx.jpg">”改成你本地图片的地址
    貌似比较麻烦
      

  5.   

    将远程图片保存到本地的PHP代码可以网上搜 一大堆
      

  6.   


    <?php 
    // 
    // Function: 获取远程图片并把它保存到本地
    // 
    // 
    // 确定您有把文件写入本地服务器的权限 
    // 
    // 
    // 变量说明: 
    // $url 是远程图片的完整URL地址,不能为空。
    // $filename 是可选变量: 如果为空,本地文件名将基于时间和日期 
    // 自动生成. function GrabImage($url,$filename="") { 
    if($url==""):return false;endif; if($filename=="") { 
    $ext=strrchr($url,"."); 
    if($ext!=".gif" && $ext!=".jpg"):return false;endif; 
    $filename=date("dMYHis").$ext; 
    } ob_start(); 
    readfile($url); 
    $img = ob_get_contents(); 
    ob_end_clean(); 
    $size = strlen($img); $fp2=@fopen($filename, "a"); 
    fwrite($fp2,$img); 
    fclose($fp2); return $filename; 
    } $img=GrabImage("http://news.bbc.co.uk/images/_1978837_detector_ap100.jpg",""); 
    if($img):echo "<pre><img src="".$img.""></pre>";
    else:echo "false";
    endif; 
    ?>  
      

  7.   

    ///远程保存图片 网页中复制过来的,还没有修改 2008-11-18
    function SaveHttpFiles($content)
    {
    $content =str_replace('\"','',$content);
    $content =str_replace('\\','',$content);
    preg_match_all ("/<img.+src=('|\"|)?(.*)(\1)([s].*)?>/", $content, $matches);

    //print_r($matches);
    return $matches[2]; $img_array = array_unique($matches[2]);
    set_time_limit(0);
    foreach ($img_array as $key => $value)
    {
    $get_file = @file_get_contents($value);
    $filetime = time();
    $filepath = "./pic/".date("Y",$filetime)."/".date("m",$filetime)."/";
    mkDirE($filepath,777);
    $filename = date("YmdHis",$filetime).rand(1,5).'.'.substr($value,-3,3);
    $fp = @fopen("$filepath$filename","w");
    @fwrite($fp,$get_file);
    fclose($fp);
    $content = preg_replace("/".addcslashes($value,"/")."/isU", "./pic/".date("Y",$filetime)."/".date("m",$filetime)."/".$filename, $content);
            //echo $_POST["content"];

    }
    return $content;
    }
    //自动生成目录
       function mkDirE($dir,$dirmode=777)
       {
           if (!empty($dir))
           {
               if (!file_exists($dir))
               {
                   preg_match_all('/([^/]*)/?/i', $dir,$atmp);
                   $base="";
                   foreach ($atmp[0] as $key=>$val)
                   {
                       $base=$base.$val;
                       if(!file_exists($base))
                           if (!mkdir($base,$dirmode))
                           {
                                   echo "Error: Cannot create ".$base;
                               return -1;
                           }
                   }
               }
               else
                   if (!is_dir($dir))
                   {
                           echo "Error: ".$dir." exists and is not a directory";
                       return -2;
                   }
           }       return 0;   } 哪位牛人帮我这个改改.....
      

  8.   

    //远程保存图片
    //$content 一般是从编辑器里得到的数据
    //fasfdsafa<img border='0' src='fasfdsa.jpg'>fafasfafa<img src='http://www.163.com/ddd.jpg' border='0'>fdsafa
    function GetPic($content)
    {
    //$content = "<center><img alt='' border='' src='http://img1.cache.netease.com/catchpic/5/59/59C7363EC8BE50DB4D6DEA15037C111D.jpg' /></center>";
    $content = str_replace('\"','"',$content);
    //获得编辑器里图片的个数
    $picsuma = explode('<img',$content);
    $picsum = count($picsuma);//图片的个数就是$picsum-1

    for($i=1;$i<$picsum;$i++)
    {
    //查找SRC的位置
    $myfile = strpos($picsuma[$i],'src=');
    //查找地址结束位置
    $pictype ="";
    if(strpos($picsuma[$i],'.jpg')>0)
    {
    $picend = strpos($picsuma[$i],'.jpg');
    $pictype = ".jpg";
    }
    else if(strpos($picsuma[$i],'.bmp')>0)
    {
    $picend = strpos($picsuma[$i],'.bmp');
    $pictype = ".bmp";
    }
    else if(strpos($picsuma[$i],'.png')>0)
    {
    $picend = strpos($picsuma[$i],'.png');
    $pictype = ".png";
    }
    else if(strpos($picsuma[$i],'.gif')>0)
    {
    $picend = strpos($picsuma[$i],'.gif');
    $pictype = ".gif";
    }
    //return $myfile;
    $piclen = $picend - $myfile;
    //取得地址
    $path = substr($picsuma[$i],$myfile,$piclen).$pictype;//src='fasfdsa1.jpg
    $upath = explode("=",$path);
    $realpath = substr($upath[1],0,1) == "'"? substr($upath[1],1) : $upath[1];
    $realpath = substr($realpath,0,1) == '"'? substr($realpath,1) : $realpath;
    //return $realpath;
    //根据地址判断是远程还是本地 是http://开头就是远程
    if(substr(trim($realpath),0,4) == "http") //远程
    {
    $newfilepath = GrabImage($realpath);
    //新地址改为跟目录,绝对地址
    if(substr($newfilepath,0,2) == "..")
    {
    $newfilepath = substr($newfilepath,2);
    }
    $content = str_replace($realpath,$newfilepath,$content);
    } } //去掉所有的连接
    //<a href='' tarlll>dfa</a>dfasfdaf<a href=''>dsfsa</a>fdafas

    $content = replace_not_appoint_url($content);
    return ($content);
    }
    ///给定地址,远程保存图片
    //$url 是给定的图片地址 如http://www.welrwl.gaom/fsdfs/sgsa/11.jpg
    //$filename 默认是空,怎创建的图片目录为userfiles/年月/dfdsa.jpg,不为空则为指定名命名
    function GrabImage($url,$filename="") 

    if($url==""):return false;endif;  if($filename=="") 

    $ext=strrchr($url,"."); 
    if($ext!=".gif" && $ext!=".jpg" && $ext!=".bmp" && $ext!=".png"):return false;endif; 
    //$filename=date("dMYHis").$ext; 
    $filename = randoma().$ext;

    $filename1 = "../UserFiles/".date('Ym')."/".$filename;
    $filename2 = "../UserFiles/".date('Ym')."/";
    mkdir($filename2,0777);
    ob_start(); 
    readfile($url); 
    $img = ob_get_contents(); 
    ob_end_clean(); 
    $size = strlen($img);  $fp2=@fopen($filename1, "a"); 
    fwrite($fp2,$img); 
    fclose($fp2);  return $filename1; 

    /**
    * 替换非指定的链接
    *
    * @param string $str                 // 要过滤的文本
    * @param string $top_level_domain    // 一级域名,但不包含www 如http://www.google.com 输入google.com
    * @return string $str
    */ function replace_not_appoint_url($text, $top_level_domain ='ceiea.com') 
    {
    $top_level_domain_regex = str_replace('.', '\.', $top_level_domain);
       
    //$parten1 = '/<a(.*?)href=("|\')?http:\/\/(.*?)\.?google\.com\/?(.*?)("|\')?(.*?)>(.+?)<\/a>/i';
    $parten1 = '/<a(.*?)href=("|\')?http:\/\/(.*?)\.?'.$top_level_domain_regex.'\/?(.*?)("|\')?(.*?)>(.*?)<\/a>/i';
    //$parten2 = '<a\\1#Mref#="http://\\3.google.com/\\4"\\5>\\6</a>';
    $parten2 = '<a\\1#Mref#=\\2http://\\3.'.$top_level_domain.'/\\4\\5\\6>\\7</a>';
    $parten3= '/<a.*?href.*?>(.*?)<\/a>/i';
    $text = preg_replace($parten1, $parten2, $text);
    $text = preg_replace($parten3, '\\1', $text);
    $text = str_replace('#Mref#', 'href', $text);
    $text = str_replace('http://.', 'http://', $text);
         return $text;
    }
    有时候能保存,有时候保存不了,不知道为什么????
    谁能帮我解答下?
      

  9.   

    这里有下载:http://www.cn09.com/remository.html?func=fileinfo&id=1