örnek bir kod yazdım mantık şu
aşağıdaki gibi model id si değişen 100 adet link varsayalım bunlara header bilgisi göndererek curl ile bağlanmam lazım
bunları döngüye sokup her döngüde curl isteği yapıp herseferinde sayfa içeriğini kontrol edince 2-3 dk gibi zamanda verileri ekrana yazabiliyor
yani link Ford demiş ama linkin içeriğinde ford bilgileri gibi birşey oluyor.
bu curl fonksiyonunu dışarda bir kez çalıştırıp tüm linkleri parse etme şansım varmı?
http://www.site.com/model/664857
http://www.site.com/model/256896
http://www.site.com/model/895643
aşağıdaki kodlar örnek amaçlı soruyu net anlayabilmeniz için hazırladım
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
ini_set("max_execution_time",9999);
error_reporting(E_ALL ^ E_NOTICE);
function Baglan($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_ENCODING , "gzip");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$cikti = curl_exec ($ch);
curl_close ($ch);
return str_replace(array("\n","\t","\r"), null, $cikti);
}
//link içeren bir araç linklerimiz var 100 lerce olabilir
$araclar = '<a href="http://www.site.com/model/664857">Ford</a>,<a href="http://www.site.com/model/77458">Mercedes</a>';
//dinamik değişen kısmı rakamsal olan kısım yani pregmatch ile alalım
$linkbul = "#<a href=\"http://www.site.com/model/(.*?)\">.*?</a>#";
preg_match_all($linkbul,$araclar,$linkler);
for($i=0;$i<2;$i++){
//döngü yardımı ile linklere ulaştık
$hlink = "http://www.site.com/model/{$linkler[1][$i]}";
//BURDA curl fonksiyonu ile her linke ulaşıp, herlink içerisinde bulunan model marka bilgilerini çekebilmem lazım
//ancak curl fonksiyonu döngü içinde 10 larca sayfa olunca çok zaman kaybı yapıyor ve ekrana çok geç çıktı vermesine sebep oluyor
$curlB = Baglan($hlink);
//her link içeriğinde span arasında modellerinin yazdığını varsayalım
$modeller = "#<span>(.*?)</span>#";
preg_match_all($modeller,$curlB,$modeli);
//modelllerine ulaşıp yazdırdığımızı varsayalım
echo $modeli[1][0];
}
?>
</body>
</html>
