• 31-07-2018, 22:28:01
    #1
    Üyeliği durduruldu
    Örnek veriyorum elimde şöyle bir kod var

    <?php

    function siteConnect($site)
    {

    $ch = curl_init();
    $hc = "YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
    curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
    curl_setopt($ch, CURLOPT_URL, $site);
    curl_setopt($ch, CURLOPT_USERAGENT, $hc);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $site = curl_exec($ch);
    curl_close($ch);


    // Veriyi parçalama işlemi
    preg_match_all('@<td id="timeImsak" class="pTime">(.*?)</td>@si',$site,$imsak);
    preg_match_all('@<td id="timeGunes" class="pTime">(.*?)</td>@si',$site,$gunes);
    preg_match_all('@<td id="timeOgle" class="pTime">(.*?)</td>@si',$site,$ogle);
    preg_match_all('@<td id="timeIkindi" class="pTime">(.*?)</td>@si',$site,$ikindi);
    preg_match_all('@<td id="timeAksam" class="pTime">(.*?)</td>@si',$site,$aksam);
    preg_match_all('@<td id="timeYatsi" class="pTime">(.*?)</td>@si',$site,$yatsi);

    echo "İmsak: ".$imsak[0][0]."<br />";
    echo "Güneş: ".$gunes[0][0]."<br />";
    echo "Öğle: ".$ogle[0][0]."<br />";
    echo "İkindi: ".$ikindi[0][0]."<br />";
    echo "Akşam: ".$aksam[0][0]."<br />";
    echo "Yatsı: ".$yatsi[0][0]."<br />";

    }

    $giris = siteConnect('http://www.namazvakti.com/Main.php?cityID=61711');

    ?>
    Bu kod calısıyor ancak bunu baska bir site için uyarladığımda;
    <?php

    function siteConnect($site)
    {

    $ch = curl_init();
    $hc = "YahooSeeker-Testing/v3.9 (compatible; Mozilla 4.0; MSIE 5.5; Yahoo! Search - Web Search)";
    curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
    curl_setopt($ch, CURLOPT_URL, $site);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_USERAGENT, $hc);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $site = curl_exec($ch);
    curl_close($ch);


    // Veriyi parçalama işlemi
    preg_match_all('@<div id="quotes_summary_current_data" class="instrumentDataFlex">(.*?)</div>@',$site,$ruble);


    echo "Usd TO Ruble: ".$ruble[0][0]."<br />";


    }

    $giris = siteConnect('https://tr.investing.com/currencies/usd-rub');

    ?>

    Çalışmıyor.buraya o ruble fiyatının yanındaki div değerlerini verdim ama orayı çekmıyor bunun baska bir mantıgı mı var?
  • 31-07-2018, 22:39:22
    #2
    Basitce debugging yapın. Önce $site değişkenini ekrana yazdırıp deneyin, siteden veri geliyor mu. Geliyorsa print_r ile preg_match_all ifadesini ekrana yazdırı. Parçalama işlemi gerçekleşiyor mu. daha sonra .$ruble[0][0] kısmına bakın, $ruble değilkeni iç içe 2 arraydan oluşmuyor olabilir.
  • 31-07-2018, 22:43:48
    #3
    https://hastebin.com/bibaropotu.bash

    yaparak değerleri görebilirsiniz.
  • 31-07-2018, 22:51:31
    #4
    Üyeliği durduruldu
    var_dump($ruble); sorunu düzeltti teşekkür ederim.
    çıkan sonuçta
    [1]=> string(127)
    gibi ifadeler yer alıyor bunuda deneye deneye çözecez artık.
    BatuhaNN adlı üyeden alıntı: mesajı görüntüle
    https://hastebin.com/bibaropotu.bash

    yaparak değerleri görebilirsiniz.
  • 04-08-2018, 15:17:58
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    hocam Curl ded.ğimiz şey Ws(web servis) dir. Yani o site senin kodlarına karşılık kod yazmıştır. Bi WS i her sitede kullanamazsın. Her sitenin kendine has bir WS i vardır. Çoğu WS de şifreli olup sadece müşterisine özeldir.

    Anlamadığın bişey varsa yazarsın, iyi çalışmalar.