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 Mittwoch, 26. April 2017.
© Copyright by Rowisoft GmbH.
Commercial use prohibited.


Notizen: