• 17-12-2018, 19:49:35
    #1
    Arkadaşlar php'den fazla anlamadığım için bir sorunum var. Herhangi bir siteden veri çekerken, çekilen veri üzerinde değişiklik yapabiliyor muyuz. Örneğin ben aşağıdaki kodlar ile istediğim bir siteden resmi çekiyorum.

    <?php 
    function startBot($site_url , $timeout = 5)
    {
        $ch = curl_init();
        $tarayici = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0';
        curl_setopt($ch, CURLOPT_URL,$site_url);
    
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
        curl_setopt($ch, CURLOPT_HEADER         , 0);
        curl_setopt($ch, CURLOPT_TIMEOUT        , $timeout);
        curl_setopt($ch, CURLOPT_USERAGENT      , $tarayici);
    
        $result = curl_exec($ch);
        curl_close($ch);
    
        return $result;
    }
    $kaynak = file_get_contents('https://www.siteadresi.com');
    preg_match_all('@ <figure>(.*?)</figure>@si' , $kaynak , $veri);
    ?>
    
    <?php echo $veri[0][0]; ?>
    Veriyi çektikten sonra şu şekilde alıyorum veriyi

    <figure>
    <img src="http://www.siteadresi.com/resim.jpg" alt="alt" />
    </figure>
    Buradaki resmin sadece link adresini alabilme gibi bir şansım var mı acaba.
    http://www.siteadresi.com/resim.jpg şeklinde.
  • 17-12-2018, 19:58:41
    #2
    Yapılır tabi.
    Çektiğin $veri[0][0] bu değişkeni tekrar preg_match fonsiyonuna koyarak, img src deki uzantıyı al.
  • 17-12-2018, 20:02:56
    #3
    Misafir adlı üyeden alıntı: mesajı görüntüle
    Yapılır tabi.
    Çektiğin $veri[0][0] bu değişkeni tekrar preg_match fonsiyonuna koyarak, img src deki uzantıyı al.
    Sanırım anlayamadım hocam. Bir örnekle gösterebilme imkanınız var mı acaba.
  • 17-12-2018, 20:08:40
    #4
    <?php
    function startBot($site_url , $timeout = 5)
    {
        $ch = curl_init();
        $tarayici = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0';
        curl_setopt($ch, CURLOPT_URL,$site_url);
     
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
        curl_setopt($ch, CURLOPT_HEADER         , 0);
        curl_setopt($ch, CURLOPT_TIMEOUT        , $timeout);
        curl_setopt($ch, CURLOPT_USERAGENT      , $tarayici);
     
        $result = curl_exec($ch);
        curl_close($ch);
     
        return $result;
    }
    $kaynak = file_get_contents('https://www.siteadresi.com');
    preg_match_all('<span class="userTag">@ <</span>figure>(.*?)</figure><span class="userTag">@si' , $kaynak , $veri);
    $kaynak_html = $veri[0][0];
    preg_match('<img src="(.*?)"' , $kaynak_html , $veri2);
    $resim = $veri2[1];
    ?>
     
    <?php echo $resim; ?>
    Kodu test etmedim dostum. Sadece mantığını anlaman için böyle bırakıyorum.
    • Archenemy
    Archenemy bunu beğendi.
    1 kişi bunu beğendi.
  • 17-12-2018, 20:12:21
    #5
    <?php 
    function startBot($site_url , $timeout = 5)
    {
        $ch = curl_init();
        $tarayici = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0';
        curl_setopt($ch, CURLOPT_URL,$site_url);
     
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
        curl_setopt($ch, CURLOPT_HEADER         , 0);
        curl_setopt($ch, CURLOPT_TIMEOUT        , $timeout);
        curl_setopt($ch, CURLOPT_USERAGENT      , $tarayici);
     
        $result = curl_exec($ch);
        curl_close($ch);
     
        return $result;
    }
    $kaynak = file_get_contents('https://www.siteadresi.com');
    preg_match_all('<span class="userTag">@ <</span>figure>(.*?)</figure><span class="userTag">@si' , $kaynak , $veri);</span>
    /*Yeni preg_match_all ile işleminizi yapabilirsiniz*/
    preg_match_all('<figure><img src="(.*?)" alt="alt" /></figure>@si' , $veri[0][0] , $imgveri);</span>
    ?>
     
    <?php echo $imgveri[0][0]; ?>
    Sizdeki çıktıyı tekrar preg_match_all komutundan kendinize göre geçirebilirsiniz.
  • 17-12-2018, 20:16:23
    #6
    Misafir adlı üyeden alıntı: mesajı görüntüle
    <?php
    function startBot($site_url , $timeout = 5)
    {
        $ch = curl_init();
        $tarayici = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0';
        curl_setopt($ch, CURLOPT_URL,$site_url);
     
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , 0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER , 1);
        curl_setopt($ch, CURLOPT_HEADER         , 0);
        curl_setopt($ch, CURLOPT_TIMEOUT        , $timeout);
        curl_setopt($ch, CURLOPT_USERAGENT      , $tarayici);
     
        $result = curl_exec($ch);
        curl_close($ch);
     
        return $result;
    }
    $kaynak = file_get_contents('https://www.siteadresi.com');
    preg_match_all('<span class="userTag">@ <</span>figure>(.*?)</figure><span class="userTag">@si' , $kaynak , $veri);
    $kaynak_html = $veri[0][0];
    preg_match('<img src="(.*?)"' , $kaynak_html , $veri2);
    $resim = $veri2[1];
    ?>
     
    <?php echo $resim; ?>
    Kodu test etmedim dostum. Sadece mantığını anlaman için böyle bırakıyorum.
    İstediğim bilgiyi aldım. Yardımın için çok teşekkür ederim + verdim.