Php ile veri çekme / bot yapımı / file_get_contents fonkisyonu

Php ile Uzak Sunucudan veri çekmenin birden fazla yolu var , bu yazımızda en çok kullanılan file_gent_contents fonkisyonunu kullanacağız.

file_get_contents fonksiyonu belirtilen adresteki sayfanın kaynak kodlarını olduğu gibi alır.

Kullanımı :


$veri = file_get_contents("http://www.ferhatyesilmen.com");

echo $veri;

Bu kodu uyguladığınızda karşınıza sitemiz gelecektir. Burda önemli olan nokta çektiğimiz bu verinin neresine ihtiyacımızın olduğudur.  Örnek olarak ben sitenin başlığını yani title tagları arasındaki veriyi çekeceğim.

Bunun için kullanacağım bir başka php fonksiyonu var bu da : preg_match fonksiyonu

<title>Ferhat YEŞİLMEN - Kişisel Web Günlüğü</title>

Verimiz bu şekilde.

$veri = file_get_contents("http://www.ferhatyesilmen.com");

preg_match('@<title>(.*?)</title>@si',$veri,$baslik);

echo $baslik[1];

bu kod sonucunda karşımıza sadece Ferhat YEŞİLMEN – Kişisel Web Günlüğü Çıkacaktır.

Preg_match fonksiyonun kullanımı gördüğünüz gibi çok basit.

Tek yapmanız gereken almak istediğiniz verinin tam olarak nerede ve hangi taglar arasında yazıldığı.

İstediğiniz veriyi aldıktan sonra artık yapmanız gereken bu sitenizin herhangi bir yerinde göstermek yada bir veritabanına yazdırarak sürekli kullanmaktır. İyi Çalışmalar..

Php ile veri çekme / bot yapımı / file_get_contents fonkisyonu” için 22 yorum

  • 1 Mart 2012 tarihinde, saat 23:58
    Permalink

    tşklr fakat bir yerde sıkıştım bi siteden veri çekmeye çalışıyorum da site başlığında ki sıkıntıyı geçtim kategori çekimlerinde sorunum var ya

    Yanıtla
  • 12 Mayıs 2012 tarihinde, saat 18:20
    Permalink

    drupal de aggreator var. wordpresste yok. wordpress shashin eklentisi ile picasaweb albümlerimde ki fotoğrafları rss ekleme yöntemi ile ile bir fotoblog üzerinde (wordpress kurulu) yayımlamaktayım. bu durumda rss ile belirli img özellikleri ile (thumbnail 1150 px vs.) kendi kendine yayımlayan bir wordpress botu yapmak için ne yapmalıyım ?

    teşekkürler

    Yanıtla
  • 10 Eylül 2012 tarihinde, saat 23:01
    Permalink

    paylaşim için teşekkürler video sitelerim olan,****,sitem için içerik çekme botu harzırlamaya çalışıyorum

    Yanıtla
  • 23 Ocak 2013 tarihinde, saat 19:29
    Permalink

    selamla bende test.txt içindekileri okumak istiyourm mumkunmudur.

    ornek file test.txt içindede bu sekilde stok kodlarım var

    1234
    1321
    6753
    8632
    5680
    4678
    7689
    9871
    bunu nasıl okuyup ekrana basarım

    Yanıtla
    • 18 Mart 2013 tarihinde, saat 09:21
      Permalink
      $veri = file_get_contents(“test.txt”);
      

      verileri n alt satıra geçme koduna göre parçalayarak kullanabiliriz.

      $veridizi = explode("n",$veri);
      

      //parçaladığımız veriyide döngü ile yazdırabiliriz.

      foreach($veridizi as $v) {
      echo $v."<br>";
      
      }
      
      

      Kolaygelsin.

      Yanıtla
  • 18 Mart 2013 tarihinde, saat 02:20
    Permalink

    Merhabalar,

    Verdiğin kodu çalıştırabiliyorum ama içindeki html taglarını ya da sadece linkleri silmek istiyorum. Sanırım strip_tags komutu kullanılyor fakat senin koda eklemeyi beceremedim. Örnekleyebilirsen çok sevinirim.

    İyi çalışmalar.

    $veri = file_get_contents(“http://www.cekilen-site.com”);
    preg_match(‘@(.*?)@si’,$veri,$baslik);
    echo $baslik[1];

    Yanıtla
    • 18 Mart 2013 tarihinde, saat 09:15
      Permalink

      Merhaba,
      bu şekilde bütün tagları silebilirsiniz

      $baslik = strip_tags($baslik[1]); 
      

      Bu tşekildede izin verdiğiniz taglar dışındaki tüm tagları silebilirsiniz.

      $baslik = strip_tags($baslik[1],"<a>,<br>"); 
      
      Yanıtla
  • 22 Ağustos 2013 tarihinde, saat 10:46
    Permalink

    İyi günler,
    Ben “twitter” dan fotoğrafları sadece client_id kullanarak çekmek istiyorum.
    Fakat tıkandım; yardımcı olabilir misiniz?
    Teşekkür ediyorum.
    data as $user)
    {
    if($user->username == $username)
    {
    return $user->id;
    }
    }

    return ‘00000000’;
    }

    echo getInstaID(”);

    ?>

    Yanıtla
    • 22 Ağustos 2013 tarihinde, saat 10:51
      Permalink

      Özür dilerim twitter yazmışım instagram olacaktı.

      Yanıtla
  • 18 Ekim 2013 tarihinde, saat 11:32
    Permalink

    güzel paylasım tşkler

    Yanıtla
  • 23 Ocak 2014 tarihinde, saat 02:06
    Permalink

    burdaki örneği degiştirerek html sayfadan tbody arasını aldım fakat türkçe karekter hatası aldım bütün denemeleri hemen hemen yaptım aldıgım verinin karekter hatasını düzeltim bu defada o bölümde sitenin diger tarafları karekter hatası verdi burdaki örneğe bir fonsiyonmu eklemek gerekli

    Yanıtla
    • 23 Ocak 2014 tarihinde, saat 10:23
      Permalink

      veri aldığınız sayfanın charseti ile kodları yazdığınız bölümün charseti aynı olursa bu sorunu yaşamazsınız. Eğer farklı kullanmanız gerekiyor ise mb_convert_encoding Fonksiyonunu kullanmalısınız. İyi Çalışmalar.

      Yanıtla
  • 22 Mart 2014 tarihinde, saat 20:47
    Permalink

    Php Sayfasındaki Deişkeni Çekebilirmiyiz Mesala Deişken Adı $sitelink Nasıl Çekebilirim.

    Yanıtla
  • 21 Mayıs 2014 tarihinde, saat 14:18
    Permalink

    Sayın Yeşilmen
    Karşılıksız yardımlarınız için teşekkürler.
    Şunu öğrenmek istiyorum bir URL adresi çeşitli ID sorgusuna göre gösteriliyor
    Örneğin :
    http://websayfasi.com/index.aspx?urunid=12

    Bu sitedeki örn. 1’den 100’e kadar olan ID leri taratmak ve her bir sayfanın içindeki tablo halindeki 8-10 veriyi çekmek, hatta excell formatına dökmek istiyorum.
    Bu konudaki bilgimin de çok fazla olmadığını göz önünde bulundurarak nasıl bir yol önerirsiniz acaba.
    Saygılarımla

    Yanıtla
    • 2 Haziran 2014 tarihinde, saat 09:10
      Permalink

      Merhaba, ufak bir döngü ile bu işi halledebilirsiniz.

      for($i=0;$i<100;$i++) {
      
      $veri = file_get_contents('http://site.com?urunid='.$i);
      
      //Her döngüde ilgli ürün detayları $veri değişkeninde olacaktır.
      //istediğiniz yerleri preg_match fonksiyonunu kullanarak alabilirsiniz.
      //Örnek : 
      preg_match('@<title>(.*?)</title>@si',$veri,$sonuc);
      print_r($sonuc);
      
      }

      İyi Çalışmalar.

      Yanıtla
      • 12 Haziran 2014 tarihinde, saat 21:22
        Permalink

        Cevabınızı geç gördüm , deneyeceğim. İnşallah başarırım. Çok çok teşekkürler. İyi çalışmalar dilerim.

        Yanıtla
  • 31 Ekim 2015 tarihinde, saat 19:56
    Permalink

    O kadar döküman okudum ama bu kadar anlaşılır bir dille anlatımı ilk defa görüyorum tebrikler. Herşey açık ve net

    Yanıtla
  • 17 Nisan 2016 tarihinde, saat 19:19
    Permalink

    merhaba wordpress şarkı sözleri sitem var benim için bot yapabiir misin…?

    Yanıtla
  • 20 Mart 2017 tarihinde, saat 16:18
    Permalink

    Veriyi çekiyorum ancak {{destMailNo}} şeklinde çıktı alıyorum. Bunu çözme imkanımız var mıdır acaba?

    Yanıtla
  • 8 Eylül 2017 tarihinde, saat 00:15
    Permalink

    teşekkürler hocam eline sağlık

    Yanıtla

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir