Tiffu PHP API
Die Tiffu-API ermöglicht den Zugriff (lesend und schreibend) auf die Tiffu-Variablen.
Tiffu ist eine Webseite, auf der Benutzer Status-Variablen anlegen, ändern und beobachten können, um verschiedene, sich mehr oder weniger häufig ändernde Informationen bereitzustellen. Tiffu lebt davon, dass möglichst viele interessante und nützliche Informationen bereitgestellt werden.
Wenn Sie Informationen haben, die sich regelmäßig ändern und einen zusätzlichen Weg suchen, diese zu publizieren, können Sie dies sehr einfach mit der unten aufgelisteten PHP-Klasse machen.
Das folgende Beispiel demonstriert das Setzen einer Variable. Für den Zugriff werden die Tiffu-Login-Informationen benötigt und der API-Key der Variablen, die unter "Mein Status" angezeigt werden.
<? include("tiffuapi.php"); define( 'TIFFU_USER', '<Ihr Tiffu-Benutzername>' ); define( 'TIFFU_PASSWORD', '<Ihr Tiffu-Passwort>' ); define( 'TEST_VAR', '7e9aae858ec2f04250af7e7c1e2d9be3' ); $api = new TiffuAPI( TIFFU_USER, TIFFU_PASSWORD ); function updateVar( $api, $key, $value ) { if( !$api->setVar( $key, $value ) ) echo $api->getError()."<br>\n"; else echo "success<br>\n"; } updateVar( $api, TEST_VAR, 'irgendein Wert' ); ?>
Tiffu-API PHP
// tiffuapi.php <? define( 'TIFFU_HOST', 'tiffu.com' ); define( 'TIFFU_PORT', 80 ); define( 'TIFFU_URI', '/api.php' ); class TiffuAPI { private $_user; private $_pass; private $_errormsg; function __construct( $user, $pass ) { $this->_user = $user; $this->_pass = md5( $pass ); } function createParamList( $data ) { $req = ""; foreach( $data as $key => $value ) $req .= $key . '=' . urlencode( stripslashes($value) ) . '&'; return substr( $req, 0, strlen($req)-1 ); } function createHeader( $data ) { $header = ""; foreach( $data as $key => $value ) $header .= $key.': '.$value."\r\n"; return $header; } function sendHttpRequest( $host, $port, $uri, $method, $header, $data ) { $http_request = "$method $uri HTTP/1.0\r\n"; $http_request .= $this->createHeader( array( 'HOST' => $host ) ); $http_request .= $this->createHeader( $header ); $http_request .= $this->createHeader( array( 'Content-Length' => strlen($data) ) ); $http_request .= "\r\n"; $http_request .= $data; $response = ''; if( false === ($fs = @fsockopen( $host, $port, $errno, $errstr, 10) ) ) { die( 'Could not open socket' ); } fwrite( $fs, $http_request ); while( !feof($fs) ) $response .= fgets( $fs, 1160 ); // One TCP-IP packet fclose($fs); $response = explode("\r\n\r\n", $response, 2); return $response; } function _http_post( $data ) { $req = $this->createParamList( $data ); $header = array( 'Content-Type' => 'application/x-www-form-urlencoded;', 'User-Agent' => 'TIFFU_CLIENT/PHP' ); return $this->sendHttpRequest( TIFFU_HOST, TIFFU_PORT, TIFFU_URI, 'POST', $header, $req ); } function getError() { return $this->_errormsg; } function setVar( $key, $value ) { $response = $this->_http_post( array ( 'u' => $this->_user, 'p' => $this->_pass, 'k' => $key, 'v' => $value, 'a' => 'setval' ) ); $answers = explode ("\n", $response[1] ); if( $answers[1] == "OK" ) return true; $this->_errormsg = $answers[1]; return false; } function getVar( $key ) { $response = $this->_http_post( array ( 'u' => $this->_user, 'p' => $this->_pass, 'k' => $key, 'a' => 'getval' ) ); $answers = explode ("\n", $response[1] ); if( $answers[0] == "OK" ) return $answers[1]; $this->_errormsg = $answers[0]; return false; } } ?>