• 11-09-2010, 03:32:36
    #1
    arkadaşlar yusuf koç'un yazdığı uygulamayla resmi çekiyorum

    http://www.ysfkc.com/php/resim-upload-sinifi.html

    veri çekerken kullandığım kod aşağıdaki gibi

    $resimalan='#src="http://www.site.com/uploads/(.*?)"#si';
    preg_match($resimalan,$veri,$resimfonksiyon);
    
    $resim=$resimfonksiyon[1];
    yusuf koç un uygulamasına $resim değikeni ile ekliyorum ve resmi ftp ye çekiyorum

    # Download Etmek İstediğimiz Dosyayının URL Adresini Giriyoruz.
    # -------------------------------------------------------------------
    
    $file->setUrlAddress($resim);
    ama bu şekilde tek resim çekebiliyorum oysa çektiğim veriler içinde 2 yada 3 resim olabiliyor çektiğim veri içindeki tüm resimleri servere inidirmeyi nasıl yapabilirim
  • 11-09-2010, 04:06:46
    #2
    veriyi explode ile parçalayip içindeki tüm img adreslerini alabilirsiniz...Böyle bir fikir yürütülebilir...

    $resim = preg_replace('/<img src=(.*)?><\/img>/i','',$resim); 
    echo $resim;
  • 11-09-2010, 04:10:02
    #3
    zaten takıldığım nokta tek resimi değil konu içindeki tüm resimleri çekebilme yukardaki işlemlerle sadece bir resmi çekebiliyorum oda

    $resim değişkeni ile tanımladığım bölüm hepsini nasıl çekebilirim orada takıldım


    istediğim preg_match veya preg_match_all kullanarak sayfanın kaynağında ne kadar <img src=" ile başlayan resim url si varsa hepsini kendi sunucuma çekmek. Kaç adet resim olduğu değişken bazılarında 2 bazılarında 4 resim var, bazılarında da hiç resim yok. foreach ile dizi değişkene aktarılarak yapılabileceğini düşünmekle birlikte nasıl yapılacağını bulamadım. Yardımlarınızı bekliyorum.
  • 11-09-2010, 12:11:28
    #4
    Eposta Aktivasyonu Gerekmekte
    <?php
    $webAdress = "http://www.hedehödü.com/";
    $connect = file_get_contents($webAdress);
    preg_match_all('~<img.+src=[\'|"](.*?)[\'|"].+/>~i',$connect,$allImages);
    
    for($i=0; $i<count($allImages[1]); $i++):
           echo $allImages[1][$i] . "<br />";
    endfor;
    ?>
  • 11-09-2010, 20:41:11
    #5
    hocam kod için teşekkürler fakat bu şekilde sitedeki tüm resimleri listeliyor fakat durum şu bu resimler çektiğim konunun içindeki resimler olmalı sadece tüm sitedekiler değil ben konuyu bu desenle çekiyorum

    preg_match('#<div class="entry">(.*?)<small>#si',$veri,$yaz); 
    $yaz = (strip_tags($yazi [0],'<p></p><strong><br>'));
    resimlerde bu çektiğim veri içinde bulunuyorlar bazı konu 2 bazı konu 3 - 4 tane resim var sizin verdiğiniz kodda tüm sitedeki resimleri listeliyor bana yukarda ki aldığım bölüm arasında yer alan resimleri vermesi lazım

    birde sadece resimleri listeliyor alt alta peki bu resimleri çekmek istediğimde ftp ye nasıl çekeceğim

    tek resmi ilk konu mesajımda ki desen ile alıyorum ve ftp ye yusuf koç un uygulaması ile çekiyorum ama bu şekilde 1 resim ile sınırlıyım oysa ki kaç resim varsa konu içinde hepsini çekmek istiyorum ben

    İmkazsız bir durum mu bunu da bilmiyorum ama
  • 11-09-2010, 21:56:51
    #6
    Blade__ adlı üyeden alıntı: mesajı görüntüle
    hocam kod için teşekkürler fakat bu şekilde sitedeki tüm resimleri listeliyor fakat durum şu bu resimler çektiğim konunun içindeki resimler olmalı sadece tüm sitedekiler değil ben konuyu bu desenle çekiyorum

    preg_match('#<div class="entry">(.*?)<small>#si',$veri,$yaz); 
    $yaz = (strip_tags($yazi [0],'<p></p><strong><br>'));
    resimlerde bu çektiğim veri içinde bulunuyorlar bazı konu 2 bazı konu 3 - 4 tane resim var sizin verdiğiniz kodda tüm sitedeki resimleri listeliyor bana yukarda ki aldığım bölüm arasında yer alan resimleri vermesi lazım

    birde sadece resimleri listeliyor alt alta peki bu resimleri çekmek istediğimde ftp ye nasıl çekeceğim

    tek resmi ilk konu mesajımda ki desen ile alıyorum ve ftp ye yusuf koç un uygulaması ile çekiyorum ama bu şekilde 1 resim ile sınırlıyım oysa ki kaç resim varsa konu içinde hepsini çekmek istiyorum ben

    İmkazsız bir durum mu bunu da bilmiyorum ama
    $yaz = preg_replace('/<img src=(.*)?><\/img>/i','',$yaz);  
    echo $yaz;
    bu şekilde veri içindeki tüm resimleri alabilirsin.Ftp ye atma işlemini bende tam olarak çözemedim.Birisi açıklasa güzel olur
  • 11-09-2010, 22:48:28
    #7
    jacksparov adlı üyeden alıntı: mesajı görüntüle
    $yaz = preg_replace('/<img src=(.*)?><\/img>/i','',$yaz);  
    echo $yaz;
    bu şekilde veri içindeki tüm resimleri alabilirsin.Ftp ye atma işlemini bende tam olarak çözemedim.Birisi açıklasa güzel olur
    bu komutu denedim ama boş çıkıyor sondaki ' ' ile resim dosyaları silinmiş olmuyor mu acaba bu nedenle olabilir mi

    evet yükleme konusunda biri yazsa çok iyi olurdu yusuf koç un uygulamasıyla bir tane resim çekilebiliyor yada ben bu kadar becerebildim
  • 11-09-2010, 23:56:42
    #8
    Eposta Aktivasyonu Gerekmekte
    <?php
    $uploadDir = ""; //Resimlerin kaydedileceği dizin
    $webAdress = "http://www.hedehödü.com/";
    $connect = file_get_contents($webAdress);
    preg_match_all('~<div class="entry">.+<img.+src=[\'|"](.*?)[\'|"].+/>.+<small>~i',$connect,$allImages);
    
    for($i=0; $i<count($allImages[1]); $i++):
        if(is_dir($uploadDir)):
            $imageNewName = substr(md5(rand(0,9999)),0,10) . ".jpg"; //Resime yeni isim ver 
            $copy = copy( $allImages[1][$i] ,$uploadDir . "/" . $imageNewName  ); //Resimi kopyala
            
            if($copy === false) die ( $allImages[1][$i] . " - kaynağındaki resim kopyalanamadı."); //Kopyalamada hata oluşursa      
            echo $allImages[1][$i] . " - kaynağındaki resim [" . $imageNewName . "] adıyla sunucuya kopyalandı<br />";
        else:
            echo $uploadDir . " - Dizini bulunamadı";
        endif;    
    endfor;
    ?>
  • 12-09-2010, 02:31:05
    #9
    Eposta Aktivasyonu Gerekmekte
    Title ve resimleri en basit bu şekilde alabilirsin. Kafan karışmasın diye desenlemeyi karıştırmadım.
    Kaydetmede title'ı resim adı olarak eklemeyi sormuşsun sanırım onuda gösterdim.
    <?php
    $uploadDir = "";
    $site = "SİTE ADI"; //Ör: www.hedehödü.com -- http:// ve sonunda / olmamalı
    $fileGet = file_get_contents($site);
    preg_match_all('~<div class="readmore"><a href="(.*?)">~si',$fileGet,$getData);
    //print_r($getData);
    
    for($i=0; $i<count($getData[1]); $i++):
    
        $content = file_get_contents($getData[1][$i]);
        preg_match('~<title>(.*?)</title>~i',$content,$contentTitle);
        preg_match('~src="http://' . $site . '/wp-content/uploads/(.*?)"~si',$content,$contentImage);
        
        $seoTitle = titleReplace($contentTitle[1]);
        
        for($i=0; $i<count($allImages[1]); $i++): 
        
            if(is_dir($uploadDir)): 
            
                $imageNewName = $seoTitle . ".jpg";
                $copy = copy( 'http://' . $site . '/wp-content/uploads/' . $contentImage[1] ,$uploadDir . "/" . $imageNewName  );
                 
                if($copy === false) die ( $allImages[1][$i] . " - kaynağındaki resim kopyalanamadı.");
                       
                    echo 'http://' . $site . '/wp-content/uploads/' . contentTitle[1] . " - kaynağındaki resim [" . $imageNewName . "] adıyla sunucuya kopyalandı<br />";
                     
                else:
                 
                    echo $uploadDir . " - Dizini bulunamadı";
    
                endif;     
        endfor;
    
    endfor;
    
    
    
    
    
    function titleReplace($s) 
    {
        $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç',' ','?','Y','y','?','?','.','/');
        $eng = array('s','S','i','I','g','G','u','U','o','O','C','c','-','g','I','i','s','',''); 
        $s = str_replace($tr,$eng,$s);
        $s = strtolower($s);
        $s = preg_replace('/&.+?;/', '', $s);
        $s = preg_replace('/[^%a-z0-9 _-]/', '', $s);
        $s = preg_replace('/\s+/', '-', $s);
        $s = preg_replace('|-+|', '-', $s);
        $s = trim($s, '-');
    
        return $s;
    }
    ?>
    Edit : Pardon , üst mesajıda en son ben yazmışım.Okumadan yazdım.