php preg_match ile sadece classı belli olan etiketi seçmek
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://prototurk.com',
CURLOPT_RETURNTRANSFER => true
]);
$sayfa = curl_exec($curl);
curl_close($curl);
preg_match("@<h3>(.*?)</h3>@", $sayfa, $result);
echo "<h1>$result[1]</h1>"; //Kendine değer kat!
?>
böyle yaparak prototurk anasayfasındaki ilk h3 etiketli yazıyı seçiyorum ama örneğin ben h3 lerin içinde class ı "etiket" olan h3 ü seçmek istiyorum o zaman ne yapmalıyım
böyle bir şey denedim ama hata alıyorum
preg_match("@<h3 class='etiket'>(.*?)</h3>@", $sayfa, $result);
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (1)
Tamam doğru yapıyorsun, fakat sorun şu ki prototurk.com anasayfasında class ı etiket olan bir h3 elemanı yok, hatayı ondan dolayı alıyorsundur.
Hata almamak için şöyle bir yapı kullanabilirsin. Eğer eşleşme varsa çalışır.
if (preg_match("@<h3 class='etiket'>(.*?)</h3>@", $sayfa, $result))
print_r($result);