• 29-07-2019, 17:54:52
    #1
    Sorunu çözdüm arkadaşlar, yardımlarınız için teşekkür ederim.

    Problem txt dosyasından kaynaklanıyormuş. UTF-8 olarak kodlu idi, notepad ile bomsuz utf8 yapınca hostta da çalışmaya başladı.
    -----------------------

    Kullanmış olduğum botta şöyle bir problem yaşıyorum. Localde çalışırken sunucuda çalışmıyor. Bu işten anlayan arkadaşlar yardımcı olursa sevinirim.

    $dosya1=file_get_contents("link.txt");
    $dosya2=explode("\r\n",$dosya1);
    
    function GetMetodu($url) { 
        $ch = curl_init(); 
        curl_setopt($ch,CURLOPT_URL,$url); 
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
     // curl_setopt($ch,CURLOPT_HEADER, false); 
        
        $output=curl_exec($ch); 
        curl_close($ch); 
        return $output; 
    } 
    
    $git = GetMetodu($dosya2[0]);
    şeklinde çalıştırdığımda "Notice: Undefined offset: 1 in" ile başlayan hatayı alıyorum. Curl içine 1. satırdaki linki eklediğimde yani aşağıdaki gibi sorun olmuyor.

    $dosya1=file_get_contents("link.txt");
    $dosya2=explode("\r\n",$dosya1);
    
    function GetMetodu($url) { 
        $ch = curl_init(); 
        curl_setopt($ch,CURLOPT_URL,$url); 
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
     // curl_setopt($ch,CURLOPT_HEADER, false); 
        
        $output=curl_exec($ch); 
        curl_close($ch); 
        return $output; 
    } 
    
    $git = GetMetodu('http://www.site.com/adres.html');
  • 29-07-2019, 18:05:18
    #2
    Öncelikle print_r ($dosya2); diye verileri alabiliyor musunuz, ve yapısı ne kontrol edin.
  • 29-07-2019, 18:09:38
    #3
    carasar adlı üyeden alıntı: mesajı görüntüle
    Öncelikle print_r ($dosya2); diye verileri alabiliyor musunuz, ve yapısı ne kontrol edin.
    evet hocam ,çalıştırdığmda aşağıdaki sonucu elde ediyorum.

    Array ( [0] => https://site.com/adres1.html
    https://site.com/adres2.html
    https://site.com/adres3.html 
    ...
    ...
    echo $dosya2[0]; şeklinde de ilk satırdaki linki alıyorum. ama curl içinde çalışmıyor. linki elle ekleyince sorun yok
  • 29-07-2019, 18:14:23
    #4
    satırları tek tek almanız gerekmiyor mu hocam. Linkler tek array içinde gelmiş gibi şöyle yapsanız daha iyi olur gibi;



    // Dosyayı okumak için aç
    $dosya = fopen("link.txt","r");

    // Dosyayı satır satır $veri'ye aktar
    while($satir = fgets($dosya))
    $veri[] = $satir;

    // Dosyayı kapat
    fclose($dosya);

    // veri yazdır
    for ($i = 0; $i<= count ($veri) ; $i++ )
    {
    $git = getMetodu ($veri [$i]);
    }
  • 29-07-2019, 18:22:58
    #5
    carasar adlı üyeden alıntı: mesajı görüntüle
    satırları tek tek almanız gerekmiyor mu hocam. Linkler tek array içinde gelmiş gibi şöyle yapsanız daha iyi olur gibi;



    // Dosyayı okumak için aç
    $dosya = fopen("link.txt","r");

    // Dosyayı satır satır $veri'ye aktar
    while($satir = fgets($dosya))
    $veri[] = $satir;

    // Dosyayı kapat
    fclose($dosya);

    // veri yazdır
    for ($i = 0; $i<= count ($veri) ; $i++ )
    {
    $git = getMetodu ($veri [$i]);
    }
    print_r ile her şeyi tek array içinde alıyor doğru. tümünü almam gerekmiyor. Sadece 1. satırdaki linki almam gerekli.

    $dosya1=file_get_contents("link.txt");
    $dosya2=explode("\r\n",$dosya1);

    $git = GetMetodu($dosya2[0]);

    Localde bu şeklide kullanıyorum ve sorun oluşmuyor. Sunucuda bu sorunu oluşturan nedir merak ediyorum.
  • 29-07-2019, 19:22:32
    #6
    $dosya1=file_get_contents("link.txt");
    $dosya1 = str_replace(array("rn", "r"), "n", $dosya1);
    $dosya2=explode("n",$dosya1);
    
    function GetMetodu($url) {
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    // curl_setopt($ch,CURLOPT_HEADER, false);
    
    $output=curl_exec($ch);
    curl_close($ch);
    return $output;
    }
    
    $git = GetMetodu($dosya2[0]);
    Şunu dener misin?
  • 29-07-2019, 21:25:52
    #7
    soulmy adlı üyeden alıntı: mesajı görüntüle
    $dosya1=file_get_contents("link.txt");
    $dosya1 = str_replace(array("rn", "r"), "n", $dosya1);
    $dosya2=explode("n",$dosya1);
    
    function GetMetodu($url) {
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    // curl_setopt($ch,CURLOPT_HEADER, false);
    
    $output=curl_exec($ch);
    curl_close($ch);
    return $output;
    }
    
    $git = GetMetodu($dosya2[0]);
    Şunu dener misin?


    yok üstad o hiç çalışmadı. Localde ve VPS de çalışan kod aşağıda. Çoğu hostta çalışmıyor. host kaynaklı olabilir belki ama kodlarda hata yok, çalışmaması ilginç.

    $dosya1=file_get_contents("link.txt");
    $dosya2=explode("\r\n",$dosya1);
    
    function GetMetodu($url) { 
        $ch = curl_init(); 
        curl_setopt($ch,CURLOPT_URL,$url); 
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 
     // curl_setopt($ch,CURLOPT_HEADER, false); 
        
        $output=curl_exec($ch); 
        curl_close($ch); 
        return $output; 
    } 
    
    $git = GetMetodu($dosya2[0]);
  • 30-07-2019, 03:26:41
    #8
    wwwZiranbula adlı üyeden alıntı: mesajı görüntüle
    yok üstad o hiç çalışmadı. Localde ve VPS de çalışan kod aşağıda. Çoğu hostta çalışmıyor. host kaynaklı olabilir belki ama kodlarda hata yok, çalışmaması ilginç.

    $dosya1=file_get_contents("link.txt");
    $dosya2=explode("rn",$dosya1);
    
    function GetMetodu($url) {
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
     // curl_setopt($ch,CURLOPT_HEADER, false);
        
        $output=curl_exec($ch);
        curl_close($ch);
        return $output;
    }
    
    $git = GetMetodu($dosya2[0]);
    sebebi şu olabilir; bir metin dosyasında alt satıra geçilirke unix ve windows'da farklı EOL kullanılır.
    n =unix/linux/macos
    rn = windows
    explode fonksiyonu bu şekilde düzenlerseniz sorun çözülebilir.
  • 30-07-2019, 10:31:21
    #9
    Sorunu çözdüm arkadaşlar, yardımlarınız için teşekkür ederim.

    Problem txt dosyasından kaynaklanıyormuş. UTF-8 olarak kodlu idi, notepad ile bomsuz utf8 yapınca hostta da çalışmaya başladı.

    curl içindeki metin belgesini okumada sunucuların farklılık göstermesi çok ilginç.