[ deki_bg @ 07.05.2011. 13:12 ] @
Da li neko moze da mi pomogne kako da promenim ovaj kod:
http://snippets.dzone.com/posts/show/3329

da radi sa CURL-om

Milim da treba samo ovaj deo da se promeni:

Code:
// Actually, send ping
      if ( $pinghandle = @fsockopen( $host, 80 ) )
      {
     @fputs( $pinghandle, $httpReq );
     while ( ! feof( $pinghandle ) )
     { 
        $pingresponse = @fgets( $pinghandle, 128 );
        if($showDebugInfo) echo htmlentities($pingresponse);
     }
     @fclose( $pinghandle );
      }
[ ivan.a @ 07.05.2011. 17:20 ] @
Ne znam zašto je taj kod toliko zakomplikovan.

Zar nije lakše koristiti explode("\n", $sajtovi_iz_txt_fajla); funkciju i onda u petlji cURL metodom proveriti da li postoji sadržaj (simulirati ping):

Code:
function get_data($url, $timeout = 8)
      {
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)');
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
      }


Ceo kod:

Code:
<?php 
    function get_data($url)
    {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)');
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
    }
      
      
$sajtovi = "http://www.elitesecurity.org
http://google.com
http://codelain.com
http://sajtkojinepostoji.org";
//Koristi: file_get_contents("IME_FAJLA.txt");  umesto gornje liste

$lista = explode("\n",$sajtovi);
foreach ( $lista as $sajt)
   {
   $ping = get_data(trim($sajt));
   if (!$ping) echo "<div>$sajt: -Offline-</div>";
   else echo "<div>$sajt: <b>+Online+</b></div>";
   }
?>


[Ovu poruku je menjao ivan.a dana 07.05.2011. u 18:34 GMT+1]
[ deki_bg @ 07.05.2011. 19:09 ] @
Hm...ne radi...
Cini mi se da tvoj kod ne salje XML koji bi trebao da bi pingovao servise.
[ ivan.a @ 07.05.2011. 20:14 ] @
Kod radi. Samo trebaš da kažeš šta hoćeš da pinguješ i proveriš linkove.

Evo ti jedan primer pingovanja Technorati cURL metodom http://snippets.dzone.com/posts/show/2596

Traži (guglaj :D ) XML-RPC in PHP.

Ima i dosta open source rešenja.
[ deki_bg @ 07.05.2011. 20:36 ] @
Probao sam taj kod pre nego sto sam postvao ovde i ne radi...
Ocu da pingujem RPC servise kao sto wordpress radi.
[ Br@nkoR @ 08.05.2011. 09:03 ] @
Da li se prikazije neka greška? Da li cURL vraća neku grešku i koju? Da li si gledao kako je urađeno u wordpress-u?
[ deki_bg @ 08.05.2011. 09:24 ] @
Ne vraca gresku ali ne vraca ni status pinga kao sto radi prvi kod koji sam postavio.
Wordpress je to mnogo zakomplikovao i ne uspevam da lako izvucem kod od njih.
[ Br@nkoR @ 08.05.2011. 09:45 ] @
Hajde da budem precizniji, da li su proveravao pomoću curl_errno() odnosno curl_error(), pošto vidim da toga nemo u kodu koji je predložio @ivan.a, a takođe šta vraća curl_exec() TRUE/FALSE, koliko sam na brzinu gledao prvi kod ni gore se ne ispituje da li je upit uspeo, odnosno i ukoliko bude neka greška one se ne prikazuje, odnosno skriva se pomoću @.