Diese Website verwendet Cookies sowie Analyse-Software zur Erfassung und Auswertung der Webseiten-Nutzung. Details zur Art und Umfang der Datenerhebung finden Sie in unserer Datenschutzerklärung. Wenn Sie diese Website weiterhin nutzen, stimmen Sie der Verwendung von Cookies zu.

Druckansicht der Seite www.rowisoft.de/handbuch-php-beispieldatei
Dokumentation zum Warenwirtschaftssystem Rowisoft blue

PHP-Beispieldatei

Nachfolgend erhalten Sie eine Beispieldatei für PHP, in der u.a. die Funktionen "rsde_query", sowie "rsde_num_rows" definiert sind und die analog zu den bekannten Funktionen "mysql_query" und "mysql_num_rows" arbeiten.

Detaillierte Informationen zu den einzelnen Funktionen finden Sie direkt in den Kommentaren des Quellcodes:

<?php
require("rsdesettings.php");
/* Abwärtskompatibilität, vor PHP 5.3 gibt's str_getcsv noch nicht, deshalb str_getmycsv
*/
function str_getmycsv($input, $delimiter=',', $enclosure='"', $escape=null, $eol=null)
{
 $temp=fopen("php://memory", "rw");
 fwrite($temp, $input);
 fseek($temp, 0);
       $r = array();
 while (($data = fgetcsv($temp, 4096, $delimiter, $enclosure)) !== false)
         $r[] = $data;
 fclose($temp);
 return $r;
}
//----------------------------------------------------------------------------------------------
 
/**
* Sendet eine Post-Anfrage an eine angegebene URL
*
* @param $url URL an welche die Post-Anfrage gesendet werden soll
* @param $_data Post-Daten als Array mit Keys als Variablennamen und Values als deren Inhalte
*
* @return Rückgabe-Array mit [0] = Headerdaten und [1] = Contentdaten
*/
function PostRequest($url, $_data)
{
 global $connectionPort;
 $data = array();  
 while(list($n,$v) = each($_data))
         $data[] = "$n=$v";
 $data = implode('&', $data);
 $url = parse_url($url);
 if ($url['scheme'] != 'http')
         die('Fehler: Die RSDE muss per HTTP erreichbar sein!');
 
 $host = $url['host'];
 $path = $url['path'];
 
 $fp = fsockopen($host, $connectionPort);
 if($fp)
 {
         fputs($fp, "POST $path HTTP/1.1\r\n");
         fputs($fp, "Host: $host\r\n");
         fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
         fputs($fp, "Content-length: ". strlen($data) ."\r\n");
         fputs($fp, "Connection: close\r\n\r\n");
         fputs($fp, $data);
 
         $result = '';
         while(!feof($fp))
                 $result .= fgets($fp, 128);
         fclose($fp);
 
         $result = explode("\r\n\r\n", $result, 2);
 
         $header = isset($result[0]) ? $result[0] : '';
         $content = isset($result[1]) ? $result[1] : '';
         return array($header, $content);
 }
 else return array(false, false);
}
//----------------------------------------------------------------------------------------------
 
/**
* Datenbank-SQL-Abfrage an die RSDE, analog zu mysql_query
*
* @param $anfrage SQL-Abfrage (z.B. SELECT * FROM ...)
*
* @return Comma Separated Values - String (CSV-String) mit dem Ergebnis der Abfrage
*
* @see mysql_query()
*/
function rsde_query($anfrage)
{
 global $mandant;
 global $username;
 global $password;
 global $hostname;
 $data = array(
         'sql' => $anfrage,
         'm' => $mandant,
         'u' => $username,
         'p' => MD5($password));
 list($header, $content) = PostRequest(
         $hostname."/getsql",
         $data);
 return $content;
}
//----------------------------------------------------------------------------------------------
 
/**
* Datenbank-SQL-Abfrage an die RSDE, analog zu rsde_query, nur gibt diese Funktion ein BLOB-
* Feld zurück! (Nur ein Feld, nur ein Datensatz!!)
*
* @param $anfrage SQL-Abfrage (z.B. SELECT Blobfeld FROM ...)
*
* @return Inhalt des Blobfelds
*
* @see rsde_query()
* @see mysql_query()
*/
function rsde_blobquery($anfrage)
{
 global $mandant;
 global $username;
 global $password;
 global $hostname;
 $data = array(
         'sql' => $anfrage,
         'm' => $mandant,
         'u' => $username,
         'p' => MD5($password));
 list($header, $content) = PostRequest(
         $hostname."/requestblob",
         $data);
 return $content;
}
//----------------------------------------------------------------------------------------------
 
/**
* Liest die Anzahl Datensätze einer CSV-Datei, die mittels rsde_query() zurückgegeben wurde
*
* @param &$res CSV-String, wie er von rsde_query() zurückgegeben wurde
*
* @return Anzahl Datensätze
*
* @see rsde_query(), mysql_num_rows()
*/
function rsde_num_rows(&$res)
{
 $resArray = explode("\n", $res);
 return count($resArray) - 1;
}
//----------------------------------------------------------------------------------------------
 
/**
* Gibt ein Datenfeld aus einem CSV-String zurück, der zuvor mittels rsde_query abgefragt wurde
*
* @param &$res CSV-String, wie er von rsde_query() zurückgegeben wurde
* @param $row Datensatzindex (0 = erster Datensatz, 1 = zweiter Datensatz etc.)
* @param $fieldname Spaltenname des Datenfeldes, dessen Wert zurückgegeben werden soll
*
* @return Inhalt des abgefragten Feldes
*
* @see rsde_query(), mysql_result()
*/
function rsde_result(&$res, $row, $fieldname)
{
 $resArray = explode("\n", $res);
 if (count($resArray) <= 0)
 return "";
 $matches = str_getmycsv($resArray[0], "|", '"', '\\');
 $retColumn = -1;
 
 for ($i = 0; $i < count($matches); $i++)
 {
 if ($matches[$i] == $fieldname)
 {
   $retColumn = $i;
   break;
 }
 }
 
 if ($retColumn >= 0)
 {
 $rowArray = str_getmycsv($resArray[$row+1], "|", '"', '\\');
 return $rowArray[$retColumn];
 }
 return "";
}
//----------------------------------------------------------------------------------------------
?>

Die URL dieser Seite ist: www.rowisoft.de/handbuch-php-beispieldatei.html
Gedruckt am Freitag, 23. Juni 2017.
© Copyright by Rowisoft GmbH.
Commercial use prohibited.


Notizen:

pinnery
pinnery.com
pinnery - für Ihre Projekte
Projekt-Software
Perfekt organisiert
Alles mit jedem organisieren! In pinnery erfassen Sie Ihre Aufgaben und teilen sie mit Freunden und Kollegen. Durch die in Spalten aufgeteilte, übersichtliche Darstellung behalten Sie Ihr Projekt immer im Blick.
pinnery ist kostenlos!
Jetzt registrieren!