folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Class İçindeki Fonksiyonları Birbirlerine Bağlama (Php Nesneler)



Class İçindeki Fonksiyonları Birbirlerine Bağlama (Php Nesneler)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek

    merhaba arkadaşlar uc tane fonksiyonum var bi tanesi curl ile siteye baglanıyo ikinisi baglanılan sitedeki linkleri bulup bir dizi değişkene atıyo.üçüncüsüde 2. fonksiyonun verdiği dizi değişkendeki verileri teker teker veritabanına kaydediyo bu üçünü bi sayfaya include edip kullanmak istiyorum spagetti kod yazarak yaptım ama gene buna benzer şeylere ihtiyacı olacagı için fonksiyona cevirdiö işlemleri şimdi olmadı sorun buyuk ihtimalle dizi değişkenlerden kaynaklanıyo neyse kodları veriyorum:

     

     

     

    <?php
    class islem{

        public $url='';

    function __get($name){
        return $this->$name;
    }
    function __set($name,$value){

        $this->$name=$value;
    }


    function baglan($url){

    $oturum=curl_init();
    $veri=curl_exec($oturum);
    curl_setopt($oturum,CURLOPT_URL,$url);
    curl_setopt($oturum,CURLOPT_POST,0);
    curl_setopt($oturum,CURLOPT_POSTFIELD,"sifre=sallama");
    curl_setopt($oturum,CURLOPT_RETURNTRANSFER,1);
    return $icerik=curl_exec($oturum);
    }

    function linkleri_al($icerik){
    if(preg_match_all('/href="(.*?)"/',$icerik,$sonuc)){
    foreach($sonuc as $key=> $deger){
    echo  $deger[0];
    }}}

    function verilerikaydet($deger){

       @ $db= new  mysqli('localhost','root','','curl');
       for($i=0; $i<count($deger); $i++){
       $db->query("insert into linkler (id,link) values ('','$deger[$i]')");
    }}

    function kaclinkvar($deger){
        echo count($deger);

    }

    }

    ?>

     

     

    çağırdıgım sayfadaki kodlar:

    <?php
    require 'fonksiyonlar.php';
    require 'baglanti.php';
    $a=new islem();
    $url='www.kilodiyet.org';




    $veriler=$a->baglan($url);
    $linkler=$a->linkleri_al($veriler);
    #echo $a->kaclinkvar($linkler);
    ?>

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sirhot
    sirhot's avatar
    Kayıt Tarihi: 13/Haziran/2006
    Erkek
    ne istediğini anlamadım acıkcası bıraz daha acıklayıcı yazman mumkunmudur?

    #darkedition.com
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek

    tabi

    şimdi classın içinde bağlan isminde bi method var bu method verilern $url ye curl ile bağanıyo ve sitenin verilerini $icerik değişkenide kaydediyo

    function linkleri_al metoduda $içerik değişkeninin içindeki href="" lerin arasındaki linkleri alıyo ve $deger[0] a kaydediyo sonra son metodta $deger[o] daki verileri mysqle kaydediyoyani etmesi gerekiyoama etmiyo benim amacım bağlandıgım sitedeki tum linkleri(index.php,hede.php) alıp onları mysqle kaydetmek,

    ilk verdiğim kodu şöyle deiştireyim localde çalışınca birsürü link çıkıyo onune o linkleri mysqle kaydetmek istiyorum 

    <?php
    class islem{

        public $url='';

    function __get($name){
        return $this->$name;
    }
    function __set($name,$value){

        $this->$name=$value;
    }


    function baglan($url){

    $oturum=curl_init();
    $veri=curl_exec($oturum);
    curl_setopt($oturum,CURLOPT_URL,$url);
    curl_setopt($oturum,CURLOPT_POST,0);
    curl_setopt($oturum,CURLOPT_POSTFIELD,"sifre=sallama");
    curl_setopt($oturum,CURLOPT_RETURNTRANSFER,1);
    return $icerik=curl_exec($oturum);
    }

    function linkleri_al($icerik){
    if(preg_match_all('/href="(.*?)"/',$icerik,$sonuc)){
    for($i=0; $i<count($sonuc[0]); $i++){
    return  $linkler[$i]=substr(substr($sonuc[0][$i],6,70000),0,-1);
    }}
    }

    function verilerikaydet($deger){

       @ $db= new  mysqli('localhost','root','','curl');
       for($i=0; $i<count($deger); $i++){
       $db->query("insert into linkler (id,link) values ('','$deger[$i]')");
    }}

    function kaclinkvar($deger){
        echo count($deger);

    }

    }

    ?>

     

     

     

     

     

    çağrılan sayfa:

    <?php
    require 'fonksiyonlar.php';
    require 'baglanti.php';
    $a=new islem();
    $url='www.kilodiyet.org';




    $veriler=$a->baglan($url);
    $linkler=$a->linkleri_al($veriler);
    $a->verilerikaydet($linkler);
    #echo $a->kaclinkvar($linkler);
    ?>

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sirhot
    sirhot's avatar
    Kayıt Tarihi: 13/Haziran/2006
    Erkek

    ben cagırdıgn sayfada verilerikaydet metodunu cagırdıgını goremedım. ve

    function linkleri_al($icerik){
    if(preg_match_all('/href="(.*?)"/',$icerik,$sonuc)){
    foreach($sonuc as $key=> $deger){
    echo  $deger[0];
    }}}

    brada herhangı bı donus degerı olmadıgı ıcın  $linkler=$a->linkleri_al($veriler); bu satırıda anlamadım :/


    #darkedition.com
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek
     tamam 2.mesajımı editledim son hali var orda çalışan şekle nasıl getirebilirim
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sirhot
    sirhot's avatar
    Kayıt Tarihi: 13/Haziran/2006
    Erkek
    bana cagırsanda kaydetmedıgı o full kodu verırmısın ?

    #darkedition.com
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek

    sirhot bunu yazdı:
    -----------------------------
    bana cagırsanda kaydetmedıgı o full kodu verırmısın ?
    -----------------------------

    2.mesajda verdim full kodu istersen burdanda sqlu falanda var içinde http://rapidshare.com/files/202067604/deneme.rar.html

  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    sirhot
    sirhot's avatar
    Kayıt Tarihi: 13/Haziran/2006
    Erkek

    selam deneme sansım olmadı ama deneme-yanılma yontemı ıle hatanın bu fonksiyonda oldugnu dusundum...

    yeni linkleri_al fonksiyonunu değiştirerek denermısın?

     

    function linkleri_al($icerik){
    if(preg_match_all('/href="(.*?)"/',$icerik,$sonuc))
       for($i=0; $i<count($sonuc[0]); $i++)
         $linkler[$i]=substr(substr($sonuc[0][$i],6,70000),0,-1);
    return $linkler;
    }

     


    #darkedition.com
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Arlong
    Arlong's avatar
    Kayıt Tarihi: 14/Şubat/2005
    Erkek

    çok basit bişeymiş cevap tamamen programlama sintaksını bilmememden kaynaklanıyo

    $linkler[$i]=substr(substr($sonuc[0][$i],6,70000),0,-1); 

    yazmak yerine 

    $linkler[$i]=substr(substr($sonuc[0][$i],6,70000),0,-1);

    $return $linkler; 

    yazsaymısım hersey oluyomus tesekkurler sirhot

Toplam Hit: 1455 Toplam Mesaj: 9