v2.5.2
Giriş yap

php preg_match ile sadece classı belli olan etiketi seçmek

memdhaci
352 defa görüntülendi
<?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);
abdullahx
1131 gün önce

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);