• 23-11-2018, 22:08:37
    #1
    merhaba arkadaşlar php ile bot da kaynak sitedeki 20 yazının başlıklarını almam gerekiyor fakat bu baslıkları almak için

    <?php
    $cek= file_get_contents("site.com");
    
        	  preg_match_all('@kat="(.*?)"@si',$cek,$link);
    
    for($i =0; $i <=count($goster[0]; $i++)
    { 	 if (empty($kategori[1][$i])){
     } else { 
    
    
    $icerik= file_get_contents($link[1][0]);
    
        	  preg_match_all('@<title>(.*?)</title>@si',$icerik,$goster);
    echo $goster[1][$i];
    
    }}
    ?>
    fakata şöyle bir hatam var for döngüsü sonsuz dönüyor ve aynı veriyi 1000 2000 kere ekliyor sorunu nasıl çöze bilirim
    Aldığım Çıktı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    Dizayn Yapı
    BİRLİK ALÜMİNYUM
    Dizayn Yapı
    ACL Araç Kiralama Hizmetleri Ltd.Şti.
    BİRLİK ALÜMİNYUM
    Aycup ®
    BİRLİK ALÜMİNYUM
  • 23-11-2018, 22:14:21
    #2
    Hocam i<=20 koşulunuz olmadığı için olabilir mi acaba
  • 23-11-2018, 22:17:00
    #3
    Aitrtv adlı üyeden alıntı: mesajı görüntüle
    Hocam i<=20 koşulunuz olmadığı için olabilir mi acaba
    hocam ama count fonksiyonu ile saydırıyorum 20 taneyi zaten
  • 23-11-2018, 22:20:02
    #4
    Üyeliği durduruldu
    for'dan önce "$goster[0]" diye bir değişken tanımlanmamış....., => $link[0]" olacak
  • 23-11-2018, 22:25:35
    #5
    Adalanya adlı üyeden alıntı: mesajı görüntüle
    for'dan önce "$goster[0]" diye bir değişken tanımlanmamış....., => $link[0]" olacak
    hocam for bu şekilde o değişkeni nereye yazmam gerekiyor
    $say =count($katcek[0]);
    for($i =0; $i <=$say; $i++)
  • 23-11-2018, 22:34:49
    #6
    Üyeliği durduruldu
    fermayil adlı üyeden alıntı: mesajı görüntüle
    hocam for bu şekilde o değişkeni nereye yazmam gerekiyor
    $say =count($katcek[0]);
    for($i =0; $i <=$say; $i++)

    ********************************

    <?php
    $cek= file_get_contents("site.com");
    
              preg_match_all('@kat="(.*?)"@si',$cek,$link);
    
    for($i =0; $i < count($link[0]; $i++) {      
      if (!empty($link[1][$i])){
        $icerik= file_get_contents($link[1][0]);
         preg_match_all('@<title>(.*?)</title>@si',$icerik,$goster);
         echo $goster[1][$i];
        }
    }
    ?>
  • 23-11-2018, 22:38:09
    #7
    <?php
    
    $cek = file_get_contents("site.com");
    preg_match_all('#kat="(.*?)"#si', $cek, $link);
    
    for($i=0; $i < count($link[0]); $i++)
    {      
          if (!empty($link[1][$i])){
              $icerik = file_get_contents($link[1][$i]);
              preg_match('#<title>(.*?)</title>#si',$icerik,$goster);
              echo $goster[1];
          }
    }
    ?>
  • 24-11-2018, 04:58:31
    #8
    bu işlem for ve count kullanmanıza gerek yok sadece foreach ile olay çözülür.
    <?php 
    $cek= file_get_contents("site.com"); 
    	preg_match_all('@kat="(.*?)"@si',$cek,$link); 
    	foreach($link[1] as $link2){
    		if(!empty($link2)){
    			$icerik = file_get_contents($link2); 
    			preg_match('@<title>(.*?)<\/title>@si',$icerik,$goster); 
    			//kaynakta birden fazla title olmayacağını varsayarak preg_match_all yerine preg_math yeterlidir. 
    			echo $goster[1];
    		}
    	}
  • 24-11-2018, 23:52:08
    #9
    trgino adlı üyeden alıntı: mesajı görüntüle
    bu işlem for ve count kullanmanıza gerek yok sadece foreach ile olay çözülür.
    <?php 
    $cek= file_get_contents("site.com"); 
    	preg_match_all('@kat="(.*?)"@si',$cek,$link); 
    	foreach($link[1] as $link2){
    		if(!empty($link2)){
    			$icerik = file_get_contents($link2); 
    			preg_match('@<title>(.*?)<\/title>@si',$icerik,$goster); 
    			//kaynakta birden fazla title olmayacağını varsayarak preg_match_all yerine preg_math yeterlidir. 
    			echo $goster[1];
    		}
    	}
    hocam teşekkürler sorun çözüldü herkese R10+ verdim iyi formlar