[ Príspevkov: 17 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
NapísalOffline : 07.08.2009 7:49 | json

DIK za pomoc.

vznikol mi vsak este jeden problem, ktory s nazvom tejto temy nema nic spolocne, no nechcem zbytocne zakladat new topic...

Ide o to, ze mam tieto PHPcka:

Citácia:


(uploadnute na easy-share)

v subore twitt.php je potrebne nastavit meno a heslo na twitter, a potom staci len subor twitt.php includovat. ak je vsetko OK, zobrazi sa posledny twitt... na localhoste vsetko v poho, no ked to dam na srvr tak mi hadze stale chybu:

Citácia:
Warning: Invalid argument supplied for foreach() in /xxxx/xxx/xxxx/xxxx/xxxx/twitter-badge.php on line 48


vsimol som si, ze vytvara subor s priponou json v adresary jsn. tak som tomu adresaru pridelil atributy 666 (skusal som aj 777, no vysledok bol rovnaky).

AK by sa niekomu chcelo na to pozriet, budem rad.

DIK.


//rozdelene (stenley)


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 8:56 | json

ak ti vypisuje takuto chybu, tak s najvacsou pravdepodobnostou nie je premenna, ktoru pouzivas vo foreach, pole (foreach($premenna as $hodnota))


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 9:03 | json

no ja to tam mam takto:

Kód:
...
$timeline=array();
$timeline = $json->decode(
            $tc->getUserTimeline( $count )
            );


foreach( $timeline as $tweet ) {
...


DIK


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 9:08 | json

json_decode() vracia pole? asi tazko... skor by som to dal takto, pride mi to viac logicke:
Kód:
$timeline[] = $json->decode(
            $tc->getUserTimeline( $count )
            );


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 9:17 | json

jasne, mi to akosi nedoslo :)
lenze teraz mi to dava tuto chybu (asi 4):

Citácia:
Trying to get property of non-object


zaujimave je to, ze mi to vcera vsetko fungovalo a dnes som dal z PHP 5.2.9 na PHP 5.3 (okrem toho, ziadna zmena)

//edit by max-m:
chybne riadky:

Kód:
...
$text = $tweet->text;
$date = distance_of_time_in_words( strtotime($tweet->created_at) ) . ' ago';
$tweetid = $tweet->id;
$screenname = $tweet->user->screen_name;
...


Naposledy upravil max-m dňa 07.08.2009 9:25, celkovo upravené 1

_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 9:25 | json

na ktorom riadku ti to vypisuje? V tomto pripade je zas problem v tom, ze si myslis, ze nejaka premenna je objekt a ona v skutocnosti nie je, resp. neexistuje...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 9:33 | json

este pre istotu davam cele to PHPcko:

Kód:
<?php
require_once("gagawa.php");
require_once("json.php");
require_once("twittercacher.php");
require_once("datehelper.php");


function twitterBadge( $userEmail, $userPassword, $count=4) {

    $json = new Services_JSON();
    $tc = new TwitterCacher($userEmail,$userPassword);
    $tc->setUserAgent("Mozilla/5.0 (compatible; TwitterCacher/1.0; +http://www.kolich.com)");

   
    $timeline[] = $json->decode(
            $tc->getUserTimeline( $count )
            );

   

    foreach( $timeline as $tweet ) {
        $text = $tweet->text;
        $date = distance_of_time_in_words( strtotime($tweet->created_at) ) . ' ago';


        $tweetid = $tweet->id;
        $screenname = $tweet->user->screen_name;
        $tweetlink = 'http://twitter.com/' . $screenname . '/status/' . $tweetid;

        $text = preg_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_\+.~#?&//=]+)',
                '<a href="\\1" target="_blank">\\1</a>', $text);
        $text = preg_replace('/(^|\s)@(\w+)/',
                '\1<a href="http://www.twitter.com/\2">@\2</a>',
                $text);
        $text = preg_replace('/(^|\s)#(\w+)/',
                '\1<a href="http://search.twitter.com/search?q=%23\2">#\2</a>',
                $text);
        $vystup="<a href='".$tweetlink."' target='_blank'>".$date."</a><br />".$text;
       
       
    }

    return $vystup;
}

?>


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 9:39 | json

ok, ale na ktorom riadku ti to vypisuje? skontroluj si, ci je $tweet objekt cez is_object(), co asi nie je, kedze json_decode nevracia objekt - neviem ale, co mas v tej triede Services_JSON...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 9:47 | json

toto je v tej twittercache.php:

Kód:
<?php
define( "REFRESH_INTERVAL", 1800 );
define( "DEFAULT_DATATYPE", "json" );

class TwitterCacher {

   private $username_;
   private $password_;

   private $response_;
   private $type_;

   private $userAgent_;
   private $headers_ = array( 'Expect:', 'X-Twitter-Client: ',
               'X-Twitter-Client-Version: ',
               'X-Twitter-Client-URL: ' );

   public function __construct ( $username = NULL, $password = NULL,
      $type = DEFAULT_DATATYPE ) {

      if( empty($username) || empty($password) ) {
         throw new Exception("Username and password cannot be empty!");
      }

      $this->username_ = $username;
      $this->password_ = $password;
      
      $this->response_ = array();
      $this->userAgent_ = "";

      $this->type_ = $type;

   }

   public function setUserAgent ( $agent = NULL ) {

      if ( empty($agent) ) {
         throw new Exception("User-Agent cannot be empty!");
      }

      $this->userAgent_ = $agent;

   }

   public function getUserAgent ( ) {
      return $this->userAgent_;
   }

   private function readCache ( ) {

      $cacheFil = $this->username_.".".$this->type_;
      $cacheFile="jsn/".$cacheFil;
      if(!file_exists($cacheFile)){
         return false;
      }

      $fp = @fopen($cacheFile,"r");
           $buffer = "";

           if(!$fp) {
              return false;
      }
           else {
                   while(!feof($fp)) {
                           $buffer .= fgets($fp,4096);
                   }
           }

           fclose($fp);
           return $buffer;

   }

   private function saveCache ( $data ) {

      $cacheFil = $this->username_.".".$this->type_;
      $cacheFile="jsn/".$cacheFil;
      $fp = @fopen($cacheFile,"w");

      if(!$fp){
         return false;
      }
   
      fwrite($fp,$data);   
   
      fclose($fp);   

   }

   private function getCacheLastModified ( ) {

      $cacheFil = $this->username_.".".$this->type_;
      $cacheFile="jsn/".$cacheFil;
      return @filemtime($cacheFile);         

   }

   private function loadURL ( $url, $postargs = false, $suppressResponse = false ) {

      $url = ( $suppressResponse ) ? $url . '&suppress_response_code=true' : $url;
      $ch = curl_init($url);

      if ( $postargs !== false ) {
         curl_setopt($ch, CURLOPT_POST, true);
         curl_setopt($ch, CURLOPT_POSTFIELDS, $postargs);
      }

      if ( $this->username_ !== false &&
         $this->password_ !== false ) {
         curl_setopt($ch, CURLOPT_USERPWD, $this->username_.':'.$this->password_ );   
      }

      curl_setopt($ch, CURLOPT_VERBOSE, 0);
           curl_setopt($ch, CURLOPT_NOBODY, 0);
           curl_setopt($ch, CURLOPT_HEADER, 0);
           curl_setopt($ch, CURLOPT_USERAGENT, $this->userAgent_);
           @curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
           curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
           curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers_);   
      
      $response = curl_exec($ch);

      $this->response_ = curl_getinfo($ch);
      curl_close( $ch );

      if( intval( $this->response_['http_code'] ) == 200 ) {
         return $response;
      }
      else {
         return false;
      }

   }
   
   private function loadUserTimeline ( $count = 6, $id=false,$since=false,$since_id=false,$page=false ) {
          
      $qs = array();
           if( $since !== false ) {
                  $qs[] = 'since='.rawurlencode($since);
      }
      
      if( $since_id ) :
         $since_id = (int) $since_id;
         $qs[] = 'since_id=' . $since_id;
      endif;

      if( $page ) :
         $page = (int) $page;
         $qs[] = 'page=' . $page;
          elseif ( $count ) :
              $qs[] = 'count=' . (int) $count;
      else :
             $qs[] = 'count=20';
      endif;
         
           $qs = ( count($qs) > 0 ) ? '?' . implode('&', $qs) : '';
           
           if( $id === false ) {
                  $request = 'http://twitter.com/statuses/user_timeline.' . $this->type_ . $qs;
      }
              else {
                  $request = 'http://twitter.com/statuses/user_timeline/' . rawurlencode($id) . '.' . $this->type_ . $qs;
      }
       
      return $this->loadURL($request);
   }

   private function loadAndSave ( $count = 6 ) {

      $data = $this->loadUserTimeline( $count );
      if(!$data){
         throw new Exception("ERROR: Unable to load timeline from Twitter.");
      }
      else {
         $this->saveCache( $data );
         return $data;
      }

   }

   public function getUserTimeline ( $count = 6 ) {

      $last = $this->getCacheLastModified();
      $now = time();   

      if ( !$last || (( $now - $last ) > REFRESH_INTERVAL) ) {
         try { return $this->loadAndSave( $count ); }
         catch ( Exception $e ) { return $e->getMessage(); }
      }
      else {
         return $this->readCache();
      }

   }
   
}

?>


// edit by max-m:
chybne riadky: http://www.pcforum.sk/eregi-replace-err ... tml#639721


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 9:52 | json

tento kod si tu dal zbytocne (aj ked nie az tak zbytocne: getUserTimeline), pre teba je dolezita premenna $tweet, na nu sa zameraj a skontroluj, co obsahuje...


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 9:56 | json

tak ten kod :D

no skusil som is_object($tweet) a vystup bol prazdny...


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 10:01 | json

is_object vracia true alebo false, cize ak ti to nic nevypisalo, vratilo ti to false... presvedcit sa o tom mozes cez:
Kód:
echo (int)is_object($tweet);

ak ti vypise 0, tak to nie je objekt...

skus si vypisat este obsah $timeline cez print_r()


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 10:05 | json

takze:

to prve mi vypisalo 0 a to druhe mi vratilo Array (aj so vsetkym co v nom malo byt)


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 10:12 | json

ak si tam nemal priznaky "object", tak mas v poli obycajny retazec, a teda nemozes pouzivat zapis $object->premenna, ale hod sem nejaky vypis toho print_r(), mozno ti pojde pouzit $object['premenna'] namiesto $object->premenna


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 10:15 | json

vypis print_r:

Citácia:
Array ( [0] => Array ( [0] => stdClass Object ( [text] => samozrejme, stale upravujeme a aktualizujeme. hotova a plne funkcna veria bude dufajme do 15.08.2009 [in_reply_to_status_id] => [user] => stdClass Object ( [profile_background_image_url] => http://s3.amazonaws.com/twitter_product ... /fdfdf.jpg [followers_count] => 6 [description] => Webdesignové a reklamné štúdio MartinSOFT Vám prináša tie najlepšie ceny a služby z oblasti webdesignu. [utc_offset] => 3600 [profile_link_color] => 0084B4 [screen_name] => webdesignsk [verified] => [profile_background_tile] => [friends_count] => 0 [profile_background_color] => 9AE4E8 [favourites_count] => 0 [url] => http://www.martinsoft.sk [name] => Webdesign MartinSOFT [created_at] => Tue Jul 07 20:30:47 +0000 2009 [profile_sidebar_fill_color] => DDFFCC [protected] => [time_zone] => Bratislava [profile_sidebar_border_color] => BDDCAD [notifications] => [following] => [statuses_count] => 6 [location] => Slovakia [id] => 54665851 [profile_text_color] => 333333 [profile_image_url] => http://s3.amazonaws.com/twitter_product ... normal.jpg ) [in_reply_to_user_id] => [favorited] => [created_at] => Thu Aug 06 06:20:38 +0000 2009 [in_reply_to_screen_name] => [id] => 3162153799 [truncated] => [source] => web ) ) )


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
Offline

Správca fóra
Správca fóra
json

Registrovaný: 27.07.07
Príspevky: 3948
Témy: 51 | 51
Bydlisko: Bratislava
NapísalOffline : 07.08.2009 10:26 | json

vyskusaj vypisat $tweet[0]->text


_________________
NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE
Offline

Užívateľ
Užívateľ
json

Registrovaný: 16.01.08
Prihlásený: 27.03.13
Príspevky: 641
Témy: 144 | 144
Bydlisko: Žilina
Napísal autor témyOffline : 07.08.2009 10:34 | json

PERFEKTNE!!!

na localhoste uz v pohode! dal som to vsak na web a sice nevypise chybu, no nevypise nic (nevytvori totiz subor v adres. jsn, ktoremu som dal atr. 777)


_________________
Mac Book Pro 15.4", CPU: Intel Core 2 Duo 2.8 GHz, RAM: 4GB DDR3, HDD: 500 GB, VGA: 512MB GDDR3, OS: Mac OS X Lion; Mobil: HTC ONE S
 [ Príspevkov: 17 ] 


json



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

json encode problem

v JavaScript, VBScript, Ajax

3

533

16.12.2010 12:13

TommyHot

V tomto fóre nie sú ďalšie neprečítané témy.

PHP - MySQL - JSON

v PHP, ASP

17

468

05.05.2020 19:05

jumper

V tomto fóre nie sú ďalšie neprečítané témy.

PHP parsovanie json ?

v PHP, ASP

3

493

23.10.2011 18:05

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

PHP json a id

v PHP, ASP

3

378

01.11.2013 17:49

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

JSON a PHP - viac input

v PHP, ASP

4

435

17.04.2020 12:49

jumper

V tomto fóre nie sú ďalšie neprečítané témy.

nacitanie JSON dat do html stranky

v JavaScript, VBScript, Ajax

1

566

28.12.2020 22:47

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

[VYRIESENE] JSON z Twitteru do PHP

v PHP, ASP

8

670

27.03.2009 20:44

chvosty

V tomto fóre nie sú ďalšie neprečítané témy.

Facebook graph-api request, ktory nevracia JSON objekt

v Android, iOS, Windows Phone (Mobile)

6

754

20.09.2014 14:34

incredible

V tomto fóre nie sú ďalšie neprečítané témy.

Hladam niekoho kto vie robit z (JSON,JS,HTML)

v Ponuka práce

0

600

19.07.2012 17:02

MFSCervicek

V tomto fóre nie sú ďalšie neprečítané témy.

Táto odpoveď nie je platná JSON odpoveď - wordpress

v Redakčné systémy

0

806

25.03.2019 23:43

ffmarketer



© 2005 - 2024 PCforum, edited by JanoF