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.