• 16-07-2010, 02:10:49
    #1
    Arkadaşlar verdiklerinizi yapamadım. Ama kısaca bahsediyim, Anlıycaksınızdır


    $text[1] =  "http://zzzzzz";
    $text[2] =  "http://zzzzzzzzzzz"; 
    $id_text = array_rand($text);
    $rastgele = $text[$id_text];
    elimde bu şekil 20 ye kadar giden urller var. Sistem $rastgele ile herhangi bir url yi alıyor. Aldığında urlnin kontrol edilmesini istiyorum, eğer çalışmıyorsa tekrar alınsın. Çalışan bulunana kadar yani. Yardım edenlerden Allah razı olsun...
  • 16-07-2010, 02:20:54
    #2
    Üyeliği durduruldu
    if($look==1) die('Closed !');
  • 16-07-2010, 02:22:06
    #3
    BHCoder adlı üyeden alıntı: mesajı görüntüle
    if($look==1) die('Closed !');
    ne demek istediğimi anlamadınız sanırım, Url yi kontrol edicem. eğer url çalışıyor ise 1 çalışmıyor ise 0 olarak atanıcak.
  • 16-07-2010, 02:30:37
    #4
    function fileCheck($remoteFile){
    $ch = curl_init($remoteFile);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
    $data = curl_exec($ch);
    curl_close($ch);
    	if ($data === false) {
    	  return 'cURL failed';
    	}
    	$status = 'unknown';
    	   if (preg_match('/^HTTP\/1\.[01] (\d\d\d)/', $data, $matches)) {
    	  $status = (int)$matches[1];
    	}
    	return $status;
    }
    bu fonksyonu kullan 200 veriyor sa site erişiliyordur 200 değilse erişilmiyordur

    kullanım şekli;

    $urlCheck = fileCheck("http://www.google.com.tr");
    
    if($urlCheck == 200){
    	echo "oke";
    }else{
    	echo "no";
    }
  • 16-07-2010, 02:57:52
    #5
    80 Portunun cevap verip vermediğine bakar.
    $result = fsockopen("www.example.com", 80, $errno, $errstr, 5);
    if(! $result)
    {
      echo $errno . ' : ' . $errstr;
    }
  • 16-07-2010, 03:25:03
    #6
    Arkadaşlar verdiklerinizi yapamadım. Ama kısaca bahsediyim, Anlıycaksınızdır


    $text[1] = "http://zzzzzz";
    $text[2] = "http://zzzzzzzzzzz";
    $id_text = array_rand($text);
    $rastgele = $text[$id_text];

    elimde bu şekil 20 ye kadar giden urller var. Sistem $rastgele ile herhangi bir url yi alıyor. Aldığında urlnin kontrol edilmesini istiyorum, eğer çalışmıyorsa tekrar alınsın. Çalışan bulunana kadar yani. Yardım edenlerden Allah razı olsun...
  • 16-07-2010, 07:26:19
    #7
    <?
      function Link_Kontrol($link) {
        $main = array();
        $ch = curl_init();
        curl_setopt ($ch, CURLOPT_URL, $link);
        curl_setopt ($ch, CURLOPT_HEADER, 1);
        curl_setopt ($ch, CURLOPT_NOBODY, 1);
        curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt ($ch, CURLOPT_NETRC, 1);
        curl_setopt ($ch, CURLOPT_TIMEOUT, 10);
        ob_start();
        curl_exec ($ch);
        $stuff = ob_get_contents();
        ob_end_clean();
        curl_close ($ch);
        $parts = split("\n",$stuff,2);
        $main = split(" ",$parts[0],3);
       echo  $don =  ($main[2])?"Site Açık":"Site'ye Erişilemişyor";
      }
    
    //örnek kullanım
    Link_Kontrol("http://www.kralforumcu.net");
    ?>
  • 16-07-2010, 11:42:18
    #8
    <?php
    	$text[1] = "http://google.com";
    	$text[2] = "http://yahoo.com";
    	$text[3] = "http://budaacilmayanbirsite.com";
    	$say = count($text)-1;
    	$don = 0;
    	$yeni_dizi = array();
    	while(true):
    		$id_text = array_rand($text);
    		$rastgele = $text[$id_text];
    		if(!in_array($rastgele,$yeni_dizi)):
    			if(@dns_get_record(str_replace('http://','',$rastgele))):
    				echo $id_text.' - '.$rastgele.'sitesi açık';
    				break;
    			endif;
    			$don++;
    			$yeni_dizi[] = $rastgele;
    		endif;
    	endwhile;
    ?>
    işine yarar sanırım.
  • 16-07-2010, 11:45:49
    #9
    edit: unutmuşum oraya if ile break kontrölü yapmayı while ın işi belli olmaz sonsuz döngüye felan girer

    sen en iyisi $don >= $say dan büyükse dursun gibisinden birşey yapabilirsin