• 15-10-2023, 13:58:21
    #1
    Merhaba, curl ile veri çekmeye calısıyorum aşağıda belirttiğim kodda hata varmı?

    Siteden gelen veri kısmına getirmeye calıstıgım kısım:


    PHP KODUM:
    $cekilecekdb = $vt->query("SELECT * FROM `barkodsor` WHERE detay = 1")->fetchAll(PDO::FETCH_ASSOC);
    
            foreach ($cekilecekdb as $cekilecek)
                    {
                    $barkodurl = $cekilecek['link'];
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $barkodurl);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    $chhtml = curl_exec($ch);
                    if (curl_errno($ch)) {
                    echo 'cURL error: ' . curl_error($ch);
                    exit;
                    }
                    curl_close($ch);
                                                    
            $barkodsonuc = explode("<table class=\"detail-list\">",$chhtml)[1];
            $barkodsonuc = explode("</table>",$barkodsonuc)[0];
       
        echo "SİTEDEN GELEN VERİ : {$barkodsonuc} <br>Link : {$barkodurl} <br> Son Güncellenme Tarihi: {$tarih} <br><br><br>";
    Sonuç:
  • 15-10-2023, 14:05:30
    #2
    <?php
    // İlgili URL
        $url = 'https://upcitemdb.com/upc/8695054925014';
    
    // cURL oturumu başlat
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    // İstek yap
        $response = curl_exec($ch);
    
    // cURL hatalarını kontrol et
        if (curl_errno($ch)) {
            echo 'cURL hatası: ' . curl_error($ch);
            exit;
        }
    
    // cURL oturumunu kapat
        curl_close($ch);
    
    // HTML içeriği işleme
        $start = strpos($response, '<tr><td>EAN-13:</td><td>');
        $end = strpos($response, '</td></tr>', $start);
        $ean13 = substr($response, $start, $end - $start);
    
        $start = strpos($response, '<tr><td>Country of Registration:</td><td>');
        $end = strpos($response, '</td></tr>', $start);
        $country = substr($response, $start, $end - $start);
    
    // Sonuçları yazdır
        echo "EAN-13: $ean13 <br>";
        echo "Country of Registration: $country <br>";
    
    ?>
  • 15-10-2023, 14:07:44
    #3
    hocam yardımınız için çok teşekkürler sadece bunu yazdırmıyorum yazdırma yerine kadar attım evet haklısınız ama benim o tabloyu parçalamadan veritabanına kayıt ettirmem lazım kodun tam hali şu şekilde

    $cekilecekdb = $vt->query("SELECT * FROM `barkodsor` WHERE id = 1")->fetchAll(PDO::FETCH_ASSOC);
    
            foreach ($cekilecekdb as $cekilecek)
                    {
                    $barkodurl = $cekilecek['link'];
                    $ch = curl_init();
                    curl_setopt($ch, CURLOPT_URL, $barkodurl);
                    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                    $chhtml = curl_exec($ch);
                    if (curl_errno($ch)) {
                    echo 'cURL error: ' . curl_error($ch);
                    exit;
                    }
                    curl_close($ch);
                                                    
            $barkodsonuc = explode("<table class=\"detail-list\">",$chhtml)[1];
            $barkodsonuc = explode("</table>",$barkodsonuc)[0];
       
        echo "SİTEDEN GELEN VERİ : {$barkodsonuc} <br>Link : {$barkodurl} <br> Son Güncellenme Tarihi: {$tarih} <br><br><br>";
        
    
        
        die("DEVAMI ÇALIŞIYOR.");
    
    
    $urunadi = $cekilecek['baslik'];
    $marka = $cekilecek['kisa_aciklama'];
    $stokkodu = $cekilecek['stok_kodu'];
    
    $urunkontrolu = $baglanti->query("SELECT * FROM barkodsor WHERE baslik='{$urunadi}' ");
    $urunkontrol = $urunkontrolu->fetch_array();
    
    if (!empty($urunkontrol['id'])) {
        $sql7 = "UPDATE `barkodsor` SET `baslik` = '{$urunadi}', `detay` = '{$barkodsonuc}', `link` = '{$barkodurl}', `tarih` = '{$tarih}' WHERE id='{$urunkontrol['id']}'";
        if (mysqli_query($baglanti, $sql7))
        {
            echo "Bu ürün veritabanında kayıtlı güncellendi. <br>";
        }
    } else {
        $sql5 = "INSERT INTO `barkodsor` (`id`, `detay`, `link`, `tarih`, `baslik`) VALUES (NULL, '{$barkodsonuc}', '{$barkodurl}', '{$tarih}', '{$urunadi}');";
        if (mysqli_query($baglanti, $sql5))
        {
            echo "Bu ürün veritabanında bulunamadı yenisi ekleniyor. <br>";
        }
    }