Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Status gg poprzez CURL
Forum PHP.pl > Forum > PHP
tomaszh
Zmodyfikowałem nieco funkcje którą znalazłem na tym forum do własnych potrzeb. Wykorzystuje ona rozszerzenia CURL(niestety ze względu na konfigurację serwera nie moge wykorzystać fopen).
  1. <?php
  2.  
  3. function pokaz_status_gg($nr, $error, $BLAD, $ONLINE, $NIEDOSTEPNY, $AWAY, $LineALL=&#092;"\") 
  4. { 
  5. $ch = curl_init();
  6. curl_setopt($ch, CURLOPT_URL, &#092;"http://www.gadu-gadu.pl/users/status.asp?id='.$nr.'&styl=2\");
  7. curl_setopt($ch, CURLOPT_HEADER, 0);
  8. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  9.  
  10. $LineAll=curl_exec($ch);
  11. curl_close($ch);
  12.  
  13. $LineAll = str_replace('0', $BLAD, $LineAll); 
  14. $LineAll = str_replace('1', $NIEDOSTEPNY, $LineAll); 
  15. $LineAll = str_replace('2', $ONLINE, $LineAll); 
  16. $LineAll = str_replace('3', $AWAY, $LineAll); 
  17.  
  18. return eregi_replace(&#092;"(.*)\", \"<font style='font-family:verdana;color:darkblue;font-size:12px'>1</font>\", @$LineAll); 
  19. }
  20. print pokaz_status_gg('***moj_numer***','','','<img src=jestem.gif>','<img src=niema.gif>','<img src=wracam.gif>');
  21.  
  22. ?>


Mimo iż mój numer jest aktywny, pokazuje status "niedostepny".
Sprawdzałem na innym serwerze z poleceniem fopen() i działa idealnie.
Z czym może być problem?
Gieros
dzięki, takie coś było mi potrzebne, na serwie gdzie mam jedną stronę (forum) też zablokowali flie() z urli i nie wiedziałem za bardzo jak to zmienić, żeby działało

zmieniłem trochę twój skrypt, teraz wygląda tak

  1. <?php
  2. function pokaz_status_gg($GG){
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_URL, &#092;"http://status.gadu-gadu.pl/users/status.asp?id=$GG&styl=2\");
  5. curl_setopt($ch, CURLOPT_HEADER, 0);
  6. curl_setopt($ch, CURLOPT_BINARYTRANSFER, 0);
  7. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  8. curl_setopt($ch, CURLOPT_HTTPGET, 1);
  9. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  10.  
  11.  
  12. $LineAll=curl_exec($ch);
  13. curl_close($ch);
  14.  
  15. return $LineAll;
  16. }
  17. ?>


tu zwraca wartość, a reszte też można było do funkcji dodać, ale potrzebna mi czysta wartość, a nie będę robił kilku wyjść z funkcji

  1. <?php
  2. $Stat = pokaz_status_gg($GG);
  3. if($Stat == 1){
  4. $GG = &#092;"<a href=gg:$GG title='Gadu Gadu'><img border=0 src=grafika/offline.gif></a> - \";
  5. }
  6. if($Stat == 2){
  7. $GG = &#092;"<a href=gg:$GG title='Gadu Gadu'><img border=0 src=grafika/online.gif></a> - \";
  8. }
  9. if($Stat == 3){
  10. $GG = &#092;"<a href=gg:$GG title='Gadu Gadu'><img border=0 src=grafika/busy.gif></a> - \";
  11. }
  12. ?>


u mnie działa bez zarzutu, być może to przez dopiskę w adresie która zawiera zmienne. Poczytałem trochę o curlu i znalazłem funkcje CULROPT_HTTPGET i CURLOPT_POST, w tej drugiej można zdefiniować dane wysyłane metodą post jeśli się ją ustawi na true a po niej adeklaruje CURLOPT_POSTFIELDS, id=..&id1=...

jeśli dalej ci nie dziala to probuj dalej, serwy sa różnie poustawiane, ale skoro mi sie udało w ten sposób znaczy że się da :]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.