Programm 3 (prozedural)

3.2.3.2 PHP-Programm

Datei p03.php
<!doctype html> <!-- Programm "p03.php" --> <html> <head> <meta charset="iso-8859-1" /> <meta name="author" content="Beringer Alfred" /> <meta name="description" content="Programmieren mit PHP 5" /> <title>Programm 3 (prozedural)</title> </head> <body> <pre>
<?php // Pfad zum privaten Projektverzeichnis (siehe Kap.16.1.2) require_once "projektpfad.inc.php"; require_once PFAD . "prozeduraleSkripte/Includedateien/schueler1.inc.php"; require_once PFAD . "prozeduraleSkripte/Includedateien/ausgabesteuerungskonstante.inc.php"; // Der Einfachheit halber wird der Dateiname mit dem Pfad fix vorgegeben: $EINGABEDATEI = PFAD . "Dateien/vormerk.dat"; // ----------------------------------------------------------------------------- // Konstante für den Überschriftstext und das Ausgabeformat einer Zeile: const UEBER = " <strong>FAMILIENNAME VORNAME GEBURTSDATUM</strong><br />"; const F_AB = " %s %s %s<br />"; // Konstante für die maximale Anzahl der Zeilen pro Seite (Zeilenzählergrenze): const ZZG = 20; // Programmparameter (der Einfachheit halber fix vorgegeben): $VG = "M"; // ***************************************************************************** $VORMERK = fopen($EINGABEDATEI, "rb") or die("<p>Die Datei <b>$EINGABEDATEI</b> existiert nicht.</p>"); upanf($zz); $datensatz = fread($VORMERK, SATZLAENGE); while (!feof($VORMERK)) { $eber= aufbereitenDatensatz($datensatz); upva($eber, $aber, $VG); upausgabe($aber, $zz); $datensatz = fread($VORMERK, SATZLAENGE); } fclose($VORMERK); // ***************************************************************************** function upanf(&$zz) { $zz = ZZG; } // ----------------------------------------------------------------------------- function upva($eb, &$ab, $vg) { $ab = new stdClass(); $ab->afn = $eb->efn; $ab->avn = $eb->evn; if ($eb->eg == $vg) { $ab->agd = $eb->egd; } else { $ab->agd = str_pad("", strlen($eb->egd)); } } // ----------------------------------------------------------------------------- function upausgabe($ab, &$zz) { if ($zz >= ZZG) { printf(NEUESEITE); printf(UEBER); printf(LEERZEILE); $zz = 2; } printf(F_AB, $ab->afn, $ab->avn, $ab->agd); $zz = $zz + 1; } // ***************************************************************************** ?>
</pre> <p> </p><hr /><p> </p> <footer> <address id="ende"> Copyright &#169; 2009<br /> Letzte Aktualisierung: 2013-10-30<br /> Beringer Alfred<br /> Wögerer Wolfgang </address> </footer> </body> </html>


Include-Datei schueler1.inc.php
<?php // Satzlänge der Schülerdatei const SATZLAENGE = 80; // 1 Datensatz wird in seine Einzelfelder zerlegt und - als Datenstruktur aufbereitet - zurückgegeben. function aufbereitenDatensatz($datensatz) { $feldlaenge = array("efn" =>20, "evn" =>10, "eg" => 1, "egd" => 8, "erel"=> 2, "est" => 3, "ekl" => 5, "eplz"=> 4, "eort"=>12, "estr"=>15); $eber = new stdClass(); $offset = 0; $eber->efn = substr($datensatz,$offset,$feldlaenge["efn"]); $offset += $feldlaenge["efn"]; $eber->evn = substr($datensatz,$offset,$feldlaenge["evn"]); $offset += $feldlaenge["evn"]; $eber->eg = substr($datensatz,$offset,$feldlaenge["eg"]); $offset += $feldlaenge["eg"]; $eber->egd = substr($datensatz,$offset,$feldlaenge["egd"]); $offset += $feldlaenge["egd"]; $eber->erel = substr($datensatz,$offset,$feldlaenge["erel"]); $offset += $feldlaenge["erel"]; $eber->est = substr($datensatz,$offset,$feldlaenge["est"]); $offset += $feldlaenge["est"]; $eber->ekl = substr($datensatz,$offset,$feldlaenge["ekl"]); $offset += $feldlaenge["ekl"]; $eber->eplz = substr($datensatz,$offset,$feldlaenge["eplz"]); $offset += $feldlaenge["eplz"]; $eber->eort = substr($datensatz,$offset,$feldlaenge["eort"]); $offset += $feldlaenge["eort"]; $eber->estr = substr($datensatz,$offset,$feldlaenge["estr"]); return $eber; } ?>


Die nachfolgende Include-Datei beinhaltet die Konstanten 'NEUESEITE' und 'LEERZEILE', die einen Seitenvorschub bzw. eine Leerzeile simulieren. Diese Konstanten für die Ausgabesteuerung können in jedem Listprogramm verwendet werden.

Include-Datei ausgabesteuerungskonstante.inc.php
<?php const NEUESEITE = "<p><hr /></p><p></p>"; const LEERZEILE = "<br />"; ?>



Weiter zu
Kapitel 4.2.1.2 - Programm 1 (objektorientiert)
Kapitel 4.2.2.2 - Programm 2 (objektorientiert)
Kapitel 4.2.3.2 - Programm 3 (objektorientiert)
Kapitel 8.7.1 - Demo-Programm (Werte- und Referenztypen)
Kapitel 9.1.4 - Demo-Programm (Parameterübergabe)
Kapitel 14.2 - Beispiel mit Datenerfassung (Dateien, objektorientiert)
Kapitel 15.1.1 - SQL-Skript
Kapitel 15.2 - Einführende Beispiele (Datenbanken, prozedural)
Kapitel 15.3 - Beispiel mit Datenerfassung (Datenbanken, objektorientiert)
Kapitel 16.1.2 - Projektpfad - Include-Datei "projektpfad.inc.php"
Zurück
zum Anfang dieses Kapitels
zu Kapitel 3.2.1.2 - Programm 1 (prozedural)
zu Kapitel 3.2.2.2 - Programm 2 (prozedural)
zum Inhaltsverzeichnis