VelatErtach adlı üyeden alıntı: mesajı görüntüle
Şunu dener misiniz?
<?php
$curl = curl_init();

// BorsaDirekt URL
$url = "https://www.borsadirekt.com/";

// cURL ayarları
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_CAINFO, '/yol/sertifika_dizini/ca-bundle.crt');

// Veriyi çekme
$data = curl_exec($curl);

// Hata kontrolü
if ($data === false) {
    echo 'cURL hatası: ' . curl_error($curl);
} else {
    // Veriyi al ve dolar fiyatını bul
    if (preg_match('/<span[^>]*class="satis"[^>]*>([\d,\.]+)<\/span>/', $data, $matches)) {
        $dolar_fiyati = str_replace(',', '.', $matches[1]); // Virgül yerine nokta kullanmak için düzenleme
        echo 'Güncel dolar fiyatı: ' . $dolar_fiyati;
        // Burada dolar fiyatını kullanarak istediğiniz işlemleri yapabilirsiniz.
    } else {
        echo 'Dolar fiyatı bulunamadı.';
    }
}

// cURL bağlantısını kapat
curl_close($curl);
?>
Misafir adlı üyeden alıntı: mesajı görüntüle
Kodunuzda bazı noktalarda düzeltmeler yapmanız gerekiyor. İlk olarak, veriyi alırken kullanmaya çalıştığınız düzenli ifade ve eşleştirme yöntemi uyumsuz olabilir. Ayrıca, sitenin yapısı veya güvenlik önlemleri nedeniyle bu yöntemle veri almak mümkün olmayabilir.
Aşağıda, daha güvenli bir yaklaşım ve bazı kod düzenlemeleri öneriyorum:

<?php
$curl = curl_init();

// BorsaDirekt URL
$url = "https://www.borsadirekt.com/";

// cURL ayarları
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // Geçici olarak SSL doğrulamasını devre dışı bırakabilirsiniz (Dikkat: Güvenlik riski oluşturabilir)

// Veriyi çekme
$data = curl_exec($curl);

// Hata kontrolü
if ($data === false) {
    echo 'cURL hatası: ' . curl_error($curl);
} else {
    // Veriyi al ve dolar fiyatını bul
    if (preg_match('/<div class="doviz-item doviz4".*?>(.*?)<\/div>/s', $data, $matches)) {
        // İlgili HTML bloğunu aldık, şimdi dolar fiyatını içinden çıkarmamız gerekiyor
        if (preg_match('/<span class="value">(.*?)<\/span>/', $matches[1], $dolar_matches)) {
            $dolar_fiyati = $dolar_matches[1];
            echo 'Güncel dolar fiyatı: ' . $dolar_fiyati;
            // Burada dolar fiyatını kullanarak istediğiniz işlemleri yapabilirsiniz.
        } else {
            echo 'Dolar fiyatı bulunamadı.';
        }
    } else {
        echo 'Veri alınamadı veya istenen veri bulunamadı.';
    }
}

// cURL bağlantısını kapat
curl_close($curl);
?>
Bu kod, BorsaDirekt'in belirli bir HTML bloğunu arayarak dolar fiyatını almayı deniyor. Ancak, web siteleri yapılarını güncelleme veya değiştirme yeteneğine sahip olduklarından, zamanla bu kodun çalışabilirliği etkilenebilir.
Ek olarak, web sitelerinden veri alırken ve kullanırken, ilgili sitenin kullanım şartlarına uygun hareket etmeniz önemlidir. Sitenin veri kullanımına ilişkin herhangi bir kısıtlaması veya API hizmeti varsa, bunları kullanmanız önerilir. Ayrıca, kullanmaya çalıştığınız siteyi sık sık talep etmek veya aşırı yükleme yapmak, siteye zarar verebilir veya engellemelere yol açabilir.
Arkadaşlar chatgpt yazısını kopyala yapıştır yaparak insanları yanıltmayın. (son zamanlarda moda oldu bu olay). verdiğiniz kodlar yanlış ve uydurmaca.
çünkü biraz araştırmış olsanız o siteden direk curl ile doviz verisi alınamayacığını farkedersiniz.
ilgili site veriyi json post ile sonradan işliyor, kaynagı curl ile çekerek alamazsın.