XT Knowledge Base
Hauptseite | Über | Hilfe | FAQ | Spezialseiten | Anmelden

Druckversion | Impressum | Datenschutz | Aktuelle Version

Tiffu PHP API

Version vom 17:02, 12. Aug. 2010 bei Monettenom (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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;            
        }
    }
?>

Finden

Blättern
Hauptseite
XT Knowledge Base-Portal
Aktuelle Ereignisse
Letzte Änderungen
Zufällige Seite
Konfiguration
Hilfe
Ändern
Quelltext betrachten
Bearbeitungshilfe
Seitenoptionen
Diskussion
Neuer Abschnitt
Druckversion
Seitendaten
Versionen
Links auf diese Seite
Änderungen an verlinkten Seiten
Meine Seiten
Anmelden
Spezialseiten
Neue Seiten
Dateiliste
Statistik
Mehr …