PHP curl birçok sayfayı yazdırma işlemi

Tabiki yapabilirsiniz. Asagidaki yazdigim kod ornegini inceleyebilirsiniz. Asagida yazdigim kod, technopat.net anasayfasinda one cikan haberlerin basliklarini cekip ekrana yazdiran bir kod ornegi. Bundan esinlenerek kendi amaclariniz icin kodu degistirebilirsiniz.

[CODE lang="php" title="php curl ile web sayfalarindan belirli verileri cekme"]<?php

// gonderilen url yi curl ile cekip, sonuclari donen bir fonksiyon tanimliyorum.
function sayfayiCek($url)
{
$user_agent = 'Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';

$secenekler = [
CURLOPT_USERAGENT => $user_agent,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 30,
CURLOPT_TIMEOUT => 30,
CURLOPT_MAXREDIRS => 20
];

$ch = curl_init($url);
curl_setopt_array($ch, $secenekler);
if (preg_match("/^https/", $url)) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
$icerik = curl_exec($ch);
$hata_kodu = curl_errno($ch);
$hata_mesaji = curl_error($ch);
$sonuc = curl_getinfo($ch);
curl_close($ch);
$sonuc['hata_kodu'] = $hata_kodu;
$sonuc['hata_mesaji'] = $hata_mesaji;
$sonuc['icerik'] = $icerik;
return $sonuc;
}

// yukarida tanimladigim fonksiyon ile technopat.net anasayfasini $sayfa degiskenine cekiyorum.
$sayfa = sayfayiCek('https://www.technopat.net/');


// bu sirada bir hata olustuysa ekrana hata mesaji bastiriyorum
if ($sayfa['hata_kodu'] != 0 || $sayfa['http_code'] >= 300 || $sayfa['http_code'] < 200) {
echo "<h1>Bir hata olustu!</h1>";
exit;
}

// ufak bir regexp ile anasayfadaki one cikan haber basliklarini ayiklayip, bir diziye atiyorum.
preg_match_all("/rel=\"bookmark\"[^>]+>(?P<son_haberler>[^<]+)</", $sayfa['icerik'], $eslesmeler);

// bulunan tum eslesmeleri ekrana bastiriyorum.
echo '<pre>';
print_r($eslesmeler['son_haberler']);
echo '</pre>';[/CODE]
 

Yeni konular

Geri
Yukarı