Stránka: 1 z 1
| [ Príspevkov: 17 ] | |
Autor | Správa |
---|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina |
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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 07.08.2009 9:56 | json | |
|
tak ten kod
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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 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 |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
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 |
|
Registrovaný: 16.01.08 Prihlásený: 27.03.13 Príspevky: 641 Témy: 144 | 144 Bydlisko: Žilina | Napísal autor témy max-m: 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 |
|
Stránka: 1 z 1
| [ Príspevkov: 17 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v JavaScript, VBScript, Ajax | 3 | 533 | 16.12.2010 12:13 TommyHot | | v PHP, ASP | 17 | 468 | 05.05.2020 19:05 jumper | | v PHP, ASP | 3 | 493 | 23.10.2011 18:05 chrono | | v PHP, ASP | 3 | 378 | 01.11.2013 17:49 chrono | | v PHP, ASP | 4 | 435 | 17.04.2020 12:49 jumper | | v JavaScript, VBScript, Ajax | 1 | 566 | 28.12.2020 22:47 JanoF | | v PHP, ASP | 8 | 670 | 27.03.2009 20:44 chvosty | | v Android, iOS, Windows Phone (Mobile) | 6 | 754 | 20.09.2014 14:34 incredible | | v Ponuka práce | 0 | 600 | 19.07.2012 17:02 MFSCervicek | | v Redakčné systémy | 0 | 806 | 25.03.2019 23:43 ffmarketer |
|