Galileo Computing <openbook>
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


PHP 4 von Thomas Theis
Webserver-Programmierung für Einsteiger
Zum Katalog
gp Kapitel N Lösungen
  gp N.1 HTML für PHP
  gp N.2 Strukturierte Programmierung mit PHP
  gp N.3 Bearbeitung von Formularen
  gp N.4 Datenbanken mit MySQL
  gp N.5 Programmierung von MySQL-Datenbanken mit PHP
  gp N.6 Text-Dateien
  gp N.7 Arrays
  gp N.8 Mathematische Funktionen
  gp N.9 Zeichenketten-Funktionen

Kapitel N Lösungen

In diesem Abschnitt finden Sie die Lösungen zu den Übungsaufgaben aus allen Abschnitten. Sollten Sie die Übungsaufgabe nicht vollständig gelöst haben, so kann die Lösung als Hilfestellung dienen. Sofern Sie selber eine lauffähige Lösung gefunden haben, sollten Sie sie mit der vorgeschlagenen Lösung vergleichen.


Galileo Computing

N.1 HTML für PHP  downtop

Lösung zu Übung UB03

<html>
<body>
Bitte tragen Sie Ihren Namen ein, und senden Sie das Formular ab.<p>

<form>
   <input size="30"> Vorname <p>
   <input size="30"> Nachname <p>
   <input size="30"> Straße <p>
   <input size="30"> Hausnummer <p>
   <input size="30"> Postleitzahl <p>
   <input size="30"> Ort <p>
   <input type = "submit">
   <input type = "reset">
</form>

</body>
</html>

Lösung zu Übung UB05

<html>
<body>

<table border>
    <tr>
        <td>Berlin</td>
        <td>Deutschland</td>
    </tr>
    <tr>
        <td>Paris</td>
        <td>Frankreich</td>
    </tr>
    <tr>
        <td>Brüssel</td>
        <td>Belgien</td>
    </tr>
    <tr>
        <td>London</td>
        <td>Großbritannien</td>
    </tr>
</table>

</body>
</html>

Lösung zu Übung UB06

<html>
<body>

Zur <a href = "ub01.htm">ersten</a> Datei<p>
Zum <a href = "ub02.htm">einfachen</a>
    Eingabeformular<p>
Zum <a href = "ub03.htm">erweiterten</a>
    Eingabeformular<p>
Zur <a href = "ub04.htm">ersten</a> Tabelle<p>
Zur <a href = "ub05.htm">zweiten</a> Tabelle<p>
Klicken Sie mit der Maus auf das unterstrichene Wort<p>

</body>
</html>

Galileo Computing

N.2 Strukturierte Programmierung mit PHP  downtop

Lösung zu Übung UC03

<html>
<body>
<?php
   // es folgt der echo-Befehl
   echo "Dieses Programm wurde geschrieben";
   echo " von Max Müller";
?>
</body>
</html>

Lösung zu Übung UC06

<html>
<body>
<?php
   $a = 4;
   $c = 2;
   $ergebnis = 7 / $a + $c – 5.5 * (3 – $c);
   echo $ergebnis;
?>
</body>
</html>

Lösung zu Übung UC08

<html>
<body>
<?php
   $a = 4;
   $c = 2;
   $ergebnis = 7 / $a + $c – 5.5 * (3 – $c);

   $ta = '$a hat den Wert ' . $a;
   $tc = '$c hat den Wert ' . $c;
   $tausdr = 'Der Ausdruck lautet ';
   $tausdr .= ' 7 / $a + $c – 5.5 * (3 – $c)';
   $terg = "Das Ergebnis dieses Ausdruckes ";
   $terg .= " ist $ergebnis";

   echo "$ta <p>";
   echo "$tc <p>";
   echo "$tausdr <p>";
   echo $terg;
?>
</body>
</html>

Lösung zu Übung UC12

<html>
<body>
<?php
   $tn = "Bonn ist Hauptstadt";
   $ta = "Berlin ist Hauptstadt";
   $w1 = 15;
   $w2 = 3.2;

   if ($tn == $ta)
      echo "Die Zeichenketten sind gleich<BR>";
   else
      echo "Die Zeichenketten sind ungleich<BR>";

   if ($tn != $ta)
      echo "Die Zeichenketten sind ungleich<BR>";
   else
      echo "Die Zeichenketten sind gleich<BR>";

   if ($w1 <= $w2)
      echo "$w1 ist kleiner oder gleich $w2<BR>";
   else
      echo "$w1 ist größer als $w2<BR>";

   if ($w1 >= $w2)
      echo "$w1 ist größer oder gleich $w2<BR>";
   else
      echo "$w1 ist kleiner als $w2<BR>";

?>
</body>
</html>

Lösung zu Übung UC16

<html>
<body>
<?php

   for ($i=13; $i<=29; $i=$i+4)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=2; $i>=-1; $i=$i-0.5)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=2000; $i<=6000; $i=$i+1000)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=5; $i<=13; $i=$i+2)
   {
      echo "Z$i ";
   }
   echo "<p>";

   for ($i=1; $i<=3; $i=$i+1)
   {
      echo "a b$i ";
   }
   echo "<p>";

   for ($i=2; $i<=22; $i=$i+10)
   {
      $k = $i + 1;
      echo "c$i c$k ";
   }
   echo "<p>";

   for ($i=13; $i<=45; $i=$i+4)
   {
      if ($i<=21 || $i>=33) echo "$i ";
   }

?>
</body>
</html>

Lösung zu Übung UC23

<html>
<head>
<?php
   function av($a, $b, $c)
   {
      $mw = ($a + $b + $c) / 3;
      echo "Der Mittelwert von $a, $b";
      echo " und $c ist $mw<p>";
   }
?>
</head>
<body>
<?php
   av(4,7,7);
   av(44,69,1);
   av(-5,0,-13);
   av(1e-3,8e-3,3e-3);
   $x = 5;
   av($x,$x+3,$x-3);
?>
</body>
</html>

Lösung zu Übung UC24

<html>
<head>
<?php
   function dev($vname, $nname, $firma, $stadt)
   {
      $ausgabe = "Dieses Programm ist von $vname";
      $ausgabe .= " $nname, $firma in $stadt";
      echo "$ausgabe<p>";
   }
?>
</head>
<body>
<?php
   $meinvorname = "Max";
   $meinnachname = "Müller";
   $meinefirma = "Quadro GmbH";
   $meinestadt = "Obertupfingen";
   dev($meinvorname, $meinnachname,
       $meinefirma, $meinestadt);
   dev("Hans", "Maier", "Siemens", "Düsseldorf");
   dev($meinvorname, $meinnachname, "Siemens",
       "Düsseldorf");
?>
</body>
</html>

Lösung zu Übung UC25

<html>
<head>
<?php
   function dev($vname, $nname, $firma, $stadt, $g)
   {
      if ($g == 1) $gtext = "Frau";
      else $gtext = "Herrn";
      $ausgabe = "Dieses Programm ist von $gtext ";
      $ausgabe .= " $vname $nname, $firma ";
      $ausgabe .= " in $stadt";
      echo "$ausgabe<p>";
   }
?>
</head>
<body>
<?php
   $meinvorname = "Max";
   $meinnachname = "Müller";
   $meinefirma = "Quadro GmbH";
   $meinestadt = "Obertupfingen";
   dev($meinvorname, $meinnachname, $meinefirma,
       $meinestadt, 2);

   dev("Julia", "Maier", "Siemens", "Düsseldorf", 1);
   dev($meinvorname, $meinnachname, "Siemens",
       "Düsseldorf", 2);
?>
</body>
</html>

Lösung zu Übung UC27

<html>
<head>
<?php
   function bigger($x, $y)
   {
      if ($x > $y)
         $ergebnis = $x;
      else
         $ergebnis = $y;

      return $ergebnis;
   }
?>
</head>
<body>
<?php
   $c = bigger(3,4);
   echo "Maximum: $c<p>";

   $x = 5;
   $c = bigger($x,12);
   echo "Maximum: $c<p>";

   echo "Maximum: " . bigger(13,2) . "<p>";
?>
</body>
</html>

Lösung zu Übung UC28

<html>
<head>
<?php
   function etikett($vn, $nn, $plz, $ort)
   {
      $erg = "An<br>$vn $nn<br>$plz $ort";
      return $erg;
   }
?>
</head>
<body>
<?php
   $meinvorname = "Max";
   $meinnachname = "Müller";
   $meineplz = 52699;
   $meinestadt = "Obertupfingen";
   $ausgabe = etikett($meinvorname, $meinnachname,
              $meineplz, $meinestadt);
   echo "<p>$ausgabe";

   $ausgabe = etikett("Julia", "Maier", 56601,
              "Düsseldorf");
   echo "<p>$ausgabe";

   $ausgabe = etikett($meinvorname, $meinnachname,
              57433,"Düsseldorf");
   echo "<p>$ausgabe";
?>
</body>
</html>

Lösung zu Übung UC30

<html>
<head>
<?php
   function rechne($a, $b, $su, $pr)
   {
      $su = $a + $b;
      $pr = $a * $b;
   }
?>
</head>
<body>
<?php
   $x = 7;
   $y = 5;
   rechne($x, $y, &$summe, &$produkt);
   echo "Die Summe von $x und $y ist $summe<p>";
   echo "Das Produkt von $x und $y ist $produkt";
?>
</body>
</html>

Galileo Computing

N.3 Bearbeitung von Formularen  downtop

Lösung zu Übung UD02, Formular

<html>
<body>
Bitte tragen Sie Ihre Adresse ein, und senden Sie das Formular ab:
<form action = "ud02.php" method = "post">
    <input name = "nachname"> Nachname <p>
    <input name = "vorname"> Vorname <p>
    <input name = "strasse"> Straße <p>
    <input name = "plz"> PLZ <p>
    <input name = "ort"> Ort <p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

Lösung zu Übung UD02, Programm

<html>
<body>
<?php
   echo "Vielen Dank, $vorname $nachname <br>";
   echo "Wir haben Ihre Adresse<br>";
   echo "$strasse <br>";
   echo "$plz $ort <br>";
   echo "gespeichert";
?>
</body>
</html>

Lösung zu Übung UD04, Formular

<html>
<body>
Bitte tragen Sie drei unterschiedlich große Zahlen ein,
 und senden Sie das Formular ab:
<form action = "ud04.php" method = "post">
    <input name = "w1"> Wert 1<p>
    <input name = "w2"> Wert 2<p>
    <input name = "w3"> Wert 3<p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

Lösung zu Übung UD04, Programm

<html>
<body>
<?php
   if ($w1 > $w2)
   {
      if ($w1 > $w3)
         echo "$w1 ist die größte Zahl";
      else
         echo "$w3 ist die größte Zahl";
   }
   else
   {
      if ($w2 > $w3)
         echo "$w2 ist die größte Zahl";
      else
         echo "$w3 ist die größte Zahl";
   }
?>
</body>
</html>

Lösung zu Übung UD08, Formular

<html>
<body>
Bitte geben Sie Ihren Namen und Ihre Adresse ein, treffen Sie Ihre 
Auswahl und senden Sie das Formular ab:
<form action = "ud08.php" method = "post">
    <input name="besteller"> Name<p>
    <input name="adresse"> Adresse<p>

    <input type="radio" name="anrede" value="Herr"
     checked> Herr <p>
    <input type="radio" name="anrede" value="Frau">
     Frau <p>
    <p>

    <select name="pizzatyp">
       <option value="Napoli" selected>
          Napoli (DM 11,50)
       <option value="Italia">
          Italia (DM 12,50)
       <option value="Con Tutto">
          Con Tutto (DM 14,00)
       <option value="4 Stagioni">
          4 Stagioni (DM 13,00)
       <option value="Mozzarella">
          Mozzarella (DM 14,50)
    </select><p>

    <input type="checkbox" name="ct"
       value="Thunfisch"> Thunfisch<p>
    <input type="checkbox" name="cek"
       value="Extra Käse"> Extra Käse<p>

    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

Lösung zu Übung UD08, Programm

<html>
<body>
<?php

   /* Auswahl der Pizza */
   if ($pizzatyp == "Napoli")
      $preis = 11.5;
   else if ($pizzatyp == "Italia")
      $preis = 12.5;
   else if ($pizzatyp == "Con Tutto")
      $preis = 14;
   else if ($pizzatyp == "4 Stagioni")
      $preis = 13;
   else
      $preis = 14.5;

   /* Zusätze */
   if ($ct)
      $preis = $preis + 1;
   if ($cek)
      $preis = $preis + 2;

   /* Anrede */
   if ($anrede == "Herr")
      echo "Sehr geehrter Herr $besteller<p>";
   else
      echo "Sehr geehrte Frau $besteller<p>";

   /* Ausgabe */
   echo "vielen Dank für Ihre Bestellung<p>";
   echo "Wir liefern Ihre Pizza $pizzatyp";

   if ($ct)
      echo " mit $ct";
   if ($cek)
      echo " mit $cek";

   echo " in 20 Minuten an die folgende Adresse:<p>";
   echo "$adresse<p>";
   echo "Der Preis beträgt DM $preis<p>";
   echo "Ihr Pizza-Team";
?>
</body>
</html>

Lösung zu Übung UD11, Formular

<html>
<body>
Bitte geben Sie zwei Werte ein, wählen Sie die Rechenoperation aus 
und senden Sie das Formular ab:
<form action = "ud11.php" method = "post">
    <input name="w1"> Wert 1<p>
    <input name="w2"> Wert 2<p>
    <input type="radio" name="oper"
       value="+" checked> Addition<p>
    <input type="radio" name="oper"
       value="-"> Subtraktion<p>
    <input type="radio" name="oper"
       value="*"> Multiplikation<p>
    <input type="radio" name="oper"
       value="/"> Division<p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

Lösung zu Übung UD11, Programm

<html>
<head>
<?php
   function add($x, $y)
   {
      $s = $x + $y;
      return $s;
   }
   function sub($x, $y)
   {
      $s = $x – $y;
      return $s;
   }
   function mult($x, $y)
   {
      $s = $x * $y;
      return $s;
   }
   function divi($x, $y)
   {
      $s = $x / $y;
      return $s;
   }
?>
</head>
<body>
<?php
   if ($oper == "+")
      $erg = add($w1,$w2);
   else if ($oper == "-")
      $erg = sub($w1,$w2);
   else if ($oper == "*")
      $erg = mult($w1,$w2);
   else
      $erg = divi($w1,$w2);

   echo "$w1 $oper $w2 = $erg";
?>
</body>
</html>

Lösung zu Übung UD13

<html>
<head>
<?php

[Funktionen wie in UD11]

?>
</head>

<body>
<?php
   if ($gesendet)
   {

[Verzweigung und Ausgabe wie in UD11]

   }
?>

Bitte geben Sie zwei Werte ein, wählen Sie die Rechenoperation aus 
und senden Sie das Formular ab:
<form action = "<?php $PHP_SELF ?>" method = "post">
    <input name = "w1"> Wert 1<p>
    <input name = "w2"> Wert 2<p>

[Radio-Buttons wie in UD11]

    <input type = "submit" name = "gesendet">
    <input type = "reset">
</form>

</body>
</html>

Lösung zu Übung UD14, Formular

<html>
<body>
Bitte geben Sie eine Jahreszahl ein, und senden Sie das Formular ab:
<form action = "ud14.php" method = "post">
    <input name = "J"> Jahreszahl<p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

Lösung zu Übung UD14, Programm

<html>

<head>
<?php
   function Ostersonntag($J, &$t, &$mstr)
   {
      // Berechnung von klein d
      $d = ((15 + floor($J/100) – floor($J/400)
          – floor((8 * floor($J/100) + 13) / 25)) % 30
          + 19 * ($J % 19)) % 30;

      // Berechnung von groß d
      if ($d==29)
         $D = 28;
      else if ($d == 28 && $J%17 >= 11)
         $D = 27;
      else $D = $d;

      // Berechnung von klein e
      $e = (2 * ($J%4) + 4 * ($J%7) + 6 * $D
        + (6 + floor($J/100) – floor($J/400) – 2) % 7) % 7;

      // Berechnung von Tag und Monat
      // Rückgabe der Werte per Referenz
      $mstr = "März";
      $t = 21 + $e + $D + 1;
      if ($t > 31)
      {
         $mstr = "April";
         $t = $t – 31;
      }
   }
?>
</head>

<body>
<?php
   $os = Ostersonntag($J, $tag, $monat);
   echo "$J $tag.$monat";
?>
</body>

</html>

Lösung zu Übung UD15, Formular

<html>
<body>
Bitte geben Sie zwei Jahreszahlen ein, und senden Sie das Formular 
ab:
<form action = "ud15.php" method = "post">
    <input name = "anfang"> Erste Jahreszahl<p>
    <input name = "ende"> Zweite Jahreszahl<p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>

Lösung zu Übung UD15, Programm

<html>
... Funktion Ostersonntag, siehe vorherige Übung  ...
<body>
<?php
   // Größere Jahreszahl zuerst? Tauschen !
   if ($anfang > $ende)
   {
      $temp = $anfang;
      $anfang = $ende;
      $ende = $temp;
   }
   echo "<TABLE BORDER>";
   echo "<TR> <TD>Jahr</TD> <TD>Datum</TD> </TR>";

   // Schleife über alle Jahreszahlen
   for ($J = $anfang; $J <= $ende; $J = $J + 1)
   {
      $os = Ostersonntag($J, $tag, $monat);
      echo "<TR> <TD>$J</TD> <TD>$tag.$monat</TD></TR>";
   }
   echo "</TABLE>";
?>
</body>
</html>

Galileo Computing

N.4 Datenbanken mit MySQL  downtop

Lösung zu Übung UE01

Die nachfolgende Lösung ist vollständig mit allen Angaben, die in der Windows-Installation notwendig sind. In späteren Lösungen innerhalb dieses Abschnittes werden nur noch der Aufruf des MySQL-Monitors bzw. die SQL-Anweisungen innerhalb des MySQL-Monitors angegeben. Diese Lösungen sind unabhängig von der Umgebung (Windows oder Linux).

Wechsel zum DOS-Eingabemodus: Startmenü / Programme / MS-DOS-Eingabeaufforderung Wechsel in das Verzeichnis des Datenbank-Servers:

cd c:\mysql\bin

Start des Datenbank-Servers:

mysqld-shareware

Aufruf des MySQL-Monitors:

mysql

Datenbank erzeugen:

create database hardware;

Zur Datenbank wechseln:

use hardware;

Tabellenstruktur erzeugen:

create table fp
(
   hersteller char (20),
   typ char(20),
   mb int,
   preis double(10,2),
   artikelnummer char(20),
   prod date-time
);

Ersten Datensatz eingeben:

insert fp values
(
   'Quantum',
   'Fireball CX',
   6400,
   215,
   'HDA-208',
   '97-10-1'
);

Kontrolle von Struktur und erstem Datensatz:

select * from fp;

Gegebenenfalls Änderung eines Feldnamens:

alter table fp
   change artikelnummer artnummer char(20);

Wiederholte Kontrolle:

select * from fp;

weitere Datensätze eingeben:

insert fp values
(
   'Quantum',
   'Fireball Plus',
   9100,
   269,
   'HDA-163',
   '98-3-15'
);
insert fp values
(
   'Fujitsu',
   'MPE 3136',
   13600,
   275,
   'HDA-171',
   '98-9-1'
);
insert fp values
(
   'Seagate',
   '310232A',
   10200,
   245,
   'HDA-144',
   '97-11-15'
);
insert fp values
(
   'IBM',
   'DJNA 372200',
   22000,
   455,
   'HDA-140',
   '98-6-15'
);

End-Kontrolle:

select * from fp;

Verlassen des MySQL-Monitors:

quit

Herunterfahren des Datenbank-Servers:

mysqladmin -u root shutdown

Verlassen des DOS-Eingabemodus:

exit

Lösung zu Übung UE02

Aufruf des MySQL-Monitors und der Datenbank:

mysql hardware

Alle Festplatten von Quantum:

select * from fp
   where hersteller = 'Quantum';

Alle Festplatten mit mehr als 10000 MB, ausgewählte Felder:

select hersteller, typ, mb from fp
   where mb > 10000;

Alle Festplatten unter 300 DM, ausgewählte Felder, sortiert nach Preis:

select hersteller, preis, artnummer from fp
   where preis < 300 order by preis;

Alle Festplatten mit mehr als 10000 MB, unter 300 DM, fallend sortiert nach MB:

select * from fp
   where mb > 10000 and preis < 300
   order by mb desc;

Alle Festplatten, deren Typbezeichnung mit »Fire« beginnt:

select * from fp
   where typ like 'Fire%'

Alle Festplatten, in deren Typbezeichnung »CX« vorkommt:

select * from fp
   where typ like '%CX%'

Alle Festplatten, die nach dem 1.1.1998 erstmalig produziert wurden:

select * from fp
   where prod >= '98-1-1-';

Alle Festplatten, die im ersten Halbjahr 1998 erstmalig produziert wurden:

select * from fp
   where prod >= '98-1-1-' and prod <= '98-6-30';

Lösung zu Übung UE03

Aufruf des MySQL-Monitors und der Datenbank:

mysql hardware

Alle Festplatten von Seagate um DM 25 teurer:

update fp set preis = preis + 25
   where hersteller = 'Seagate';

Änderung bei einer Festplatte von Fujitsu:

update fp
   set typ = 'MPE 3139', mb = 13900
   where artnummer = 'HDA-171';

Alle Festplatten von Quantum um 8% teurer:

update fp
   set preis = preis * 1.08
   where hersteller = 'Quantum';

Alle Festplatten von IBM entfernen:

delete from fp
   where hersteller = 'IBM';

Alle versehentlich eingefügten Datensätze entfernen:

delete from fp
   where artnummer is null;

Lösung zu Übung UE04

Datenbank wechseln:

use firma;

Tabelleninhalte kontrollieren:

select * from personen;

Gegebenenfalls Tabelleninhalte ändern:

update personen
   set personalnummer = ...
   where ...

Eigenschaften des Feldes ändern:

alter table personen
   change personalnummer personalnummer int not null;

Eindeutigen Index hinzufügen:

alter table personen
   add unique (personalnummer);

Eigenschaften der Felder kontrollieren:

show columns from personen;

Lösung zu Übung UE05

Datenbank wechseln:

use hardware;

Tabelleninhalte kontrollieren:

select * from fp;

Gegebenenfalls Tabelleninhalte ändern:

update fp
   set artnummer = ...
   where ...

Eigenschaften des Feldes ändern:

alter table fp
   change artnummer artnummer char(20) not null;

Eindeutigen Index hinzufügen:

alter table fp
   add unique (artnummer);

Eigenschaften der Felder kontrollieren:

show columns from fp;


Galileo Computing

N.5 Programmierung von MySQL-Datenbanken mit PHP  downtop

Lösung zu Übung UF04

<html>
<body>
<?php
   $db = mysql_connect();

   $res = mysql_db_query("hardware",
          "select * from fp");
   $num = mysql_num_rows($res);
   echo "$num Datensätze gefunden<br>";

   for ($i=0; $i<$num; $i++)
   {
      $her = mysql_result($res, $i, "hersteller");
      $typ = mysql_result($res, $i, "typ");
      $mb  = mysql_result($res, $i, "mb");
      $pre = mysql_result($res, $i, "preis");
      $art = mysql_result($res, $i, "artnummer");
      $pro = mysql_result($res, $i, "prod");

      echo "$her, $typ, $mb, $pre, $art, $pro <br>";
   }

   mysql_close($db);
?>
</body>
</html>

Lösung zu Übung UF04

<html>
<body>
<?php
   $db = mysql_connect();

   $abfr  = "select * from fp where mb > 10000 and";
   $abfr .= " preis < 300 order by mb desc";

   $res = mysql_db_query("hardware", $abfr);
   $num = mysql_num_rows($res);
   echo "$num Datensätze gefunden<br>";

   for ($i=0; $i<$num; $i++)
   {
      $her = mysql_result($res, $i, "hersteller");
      $typ = mysql_result($res, $i, "typ");
      $mb  = mysql_result($res, $i, "mb");
      $pre = mysql_result($res, $i, "preis");
      $art = mysql_result($res, $i, "artnummer");
      $pro = mysql_result($res, $i, "prod");

      echo "$her, $typ, $mb, $pre, $art, $pro <br>";
   }

   mysql_close($db);
?>
</body>
</html>

Lösung zu Übung UF06

<html>
<body>
<?php
   $db = mysql_connect();

   $abfr  = "select * from fp ";
   $abfr .= " where prod >= '1998-1-1' ";
   $abfr .= "and prod <= '1998-6-30' ";

   $res = mysql_db_query("hardware", $abfr);
   $num = mysql_num_rows($res);
   echo "$num Datensätze gefunden<br>";

   for ($i=0; $i<$num; $i++)
   {
      $her = mysql_result($res, $i, "hersteller");
      $typ = mysql_result($res, $i, "typ");
      $mb  = mysql_result($res, $i, "mb");
      $pre = mysql_result($res, $i, "preis");
      $art = mysql_result($res, $i, "artnummer");
      $pro = mysql_result($res, $i, "prod");

      echo "$her, $typ, $mb, $pre, $art, $pro <br>";
   }

   mysql_close($db);
?>
</body>
</html>

Lösung zu Übung UF11, Formular

<html>
<body>
Anzeige der Festplatten aus der ausgewählten Preisgruppe:
<form action = "uf11.php" method = "post">

    <input type="radio" name="pr"
       value="1" checked> bis DM 200 einschl. <p>
    <input type="radio" name="pr"
        value="2"> ab DM 200 bis DM 270 einschl. <p>
    <input type="radio" name="pr"
        value="3"> ab DM 270 <p>

    <input type="checkbox" name="namesort">
        Ausgabe nach Hersteller-Name sortiert <p>

    <input type="submit">
    <input type="reset">
</form>
</body>
</html>

Lösung zu Übung UF11, Programm

<html>
<body>
<?php
   $db = mysql_connect();
   $sqlab = "select hersteller, typ, preis ";
   $sqlab .= " from fp where ";

   if ($pr==1)
      $sqlab .= "preis <= 200";
   else if ($pr==2)
      $sqlab .= "preis > 200 and preis <= 270";
   else
      $sqlab .= "preis > 270";

   if ($namesort)
      $sqlab .= " order by hersteller";

   $res = mysql_db_query("hardware", $sqlab);
   $num = mysql_num_rows($res);
   if ($num==0)
      echo "keine passenden Datensätze gefunden";

   for ($i=0; $i<$num; $i++)
   {
      $her = mysql_result($res, $i, "hersteller");
      $typ = mysql_result($res, $i, "typ");
      $pre = mysql_result($res, $i, "preis");
      echo "$her, $typ, $pre <br>";
   }

   mysql_close($db);
?>
</body>
</html>

Lösung zu Übung UF12, Formular

<html>
<body>
Anzeige der Festplatten des ausgewählten Herstellers:
<form action = "uf12.php" method = "post">

    <select name="herst">
       <option value="Fujitsu" selected>
          Fujitsu </option>
       <option value="Quantum">
          Quantum </option>
       <option value="Seagate">
          Seagate </option>
    </select><p>

    <input type="submit">
    <input type="reset">
</form>
</body>
</html>

Lösung zu Übung UF12, Programm

<html>
<body>
<?php
   $db = mysql_connect();
   $sqlab = "select * from fp ";
   $sqlab .= " where hersteller = '$herst' ";

   $res = mysql_db_query("hardware", $sqlab);
   $num = mysql_num_rows($res);
   if ($num==0) echo "keine passenden Datensätze gefunden";

   // Tabellenbeginn
   echo "<table border>";

   // Überschrift
   echo "<tr> <td>Hersteller</td> <td>Typ</td>";
   echo "<td>MB</td> <td>Preis</td>";
   echo "<td>Artikelnummer</td>";
   echo "<td>Datum der ersten Produktion</td> </tr>";

   for ($i=0; $i<$num; $i++)
   {
      $her = mysql_result($res, $i, "hersteller");
      $typ = mysql_result($res, $i, "typ");
      $mb  = mysql_result($res, $i, "mb");
      $pre = mysql_result($res, $i, "preis");
      $art = mysql_result($res, $i, "artnummer");
      $pro = mysql_result($res, $i, "prod");

      // Tabellenzeile mit -zellen
      echo "<tr> <td>$her</td> <td>$typ</td>";
      echo "<td>$mb</td> <td>$pre</td>";
      echo "<td>$art</td> <td>$pro</td> </tr>";
   }

   // Tabellenende
   echo "</table>";

   mysql_close($db);
?>
</body>
</html>

Lösung zu Übung UF14

<html>

<head>
<?php

   if ($gesendet)
   {
      $db = mysql_connect();

      $sqlab = "insert fp";
      $sqlab .= "(hersteller, typ, mb, preis,";
      $sqlab .= " artnummer, prod) values ";
      $sqlab .=
          "('$her', '$typ', $mb, $pre, '$artn', '$prod')";

      mysql_db_query("hardware", $sqlab);

      $num = mysql_affected_rows();
      if ($num>0)
         echo "Es wurde 1 Datensatz hinzugefügt.<p>";
      else
      {
         echo "Es ist ein Fehler aufgetreten, ";
         echo "es wurde kein Datensatz hinzugefügt.<p>";
      }
      mysql_close($db);
   }
?>
</head>

<body>
Geben Sie einen vollständigen Datensatz ein, und senden Sie das 
Formular ab:
<form action = "uf14.php" method = "post">
    <input name="her"> Hersteller<p>
    <input name="typ"> Typ<p>
    <input name="mb"> MB<p>
    <input name="pre"> Preis (Nachkommastellen mit Punkt)<p>
    <input name="artn"> Artikelnummer<p>
    <input name="prod"> Datum der ersten Produktion
                          (in der Form JJJJ-MM-TT)<p>
    <input type="submit" name="gesendet">
    <input type="reset">
</form>

Alle Datensätze <a href="uf04.php">anzeigen</a>
</body>
</html>

Lösung zu Übung UF18, Teil A

<html>
<body>
Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
<form action = "uf18b.php" method = "post">
<?php
   $db = mysql_connect();
   $res = mysql_db_query("hardware",
          "select * from fp");
   $num = mysql_num_rows($res);

   // Tabellenbeginn
   echo "<table border>";

   // Überschrift
   echo "<tr> <td>Auswahl</td> <td>Hersteller</td>";
   echo "<td>Typ</td> <td>MB</td> <td>Preis</td>";
   echo "<td>Artikelnummer</td>";
   echo "<td>erstes Produktionsdatum</td> </tr>";

   for ($i=0; $i<$num; $i++)
   {
      $her = mysql_result($res, $i, "hersteller");
      $typ = mysql_result($res, $i, "typ");
      $mb  = mysql_result($res, $i, "mb");
      $pre = mysql_result($res, $i, "preis");
      $art = mysql_result($res, $i, "artnummer");
      $pro = mysql_result($res, $i, "prod");

      // Tabellenzeile mit -zellen
      echo "<tr> <td><input type='radio' ";
      echo " name='auswahl' value='$art'>";
      echo "</td> <td>$her</td> <td>$typ</td>";
      echo "<td>$mb</td> <td>$pre</td>";
      echo "<td>$art</td> <td>$pro</td> </tr>";
   }

   // Tabellenende
   echo "</table>";

   mysql_close($db);
?>
   <p>
   <input type="submit" value="Datensatz anzeigen">
</form>
</body>
</html>

Lösung zu Übung UF18, Teil B

<html>
<body>
<?php
if ($auswahl)
{
   $db = mysql_connect();

   $sqlab = "select * from fp where";
   $sqlab .= " artnummer = '$auswahl'";

   $res = mysql_db_query("hardware", $sqlab);

   $alther = mysql_result($res, 0, "hersteller");
   $alttyp = mysql_result($res, 0, "typ");
   $altmb  = mysql_result($res, 0, "mb");
   $altpre = mysql_result($res, 0, "preis");
   $altpro = mysql_result($res, 0, "prod");

   echo "Führen Sie die Änderungen durch,<p>";
   echo "betätigen Sie anschließend den Button<p>";
   echo "<form action = 'uf18c.php' ";
   echo " method = 'post'>";
   echo "<input name='neuher' value='$alther'>";
   echo " Hersteller<p>";
   echo "<input name='neutyp' value='$alttyp'>";
   echo " Typ<p>";
   echo "<input name='neumb'  value='$altmb'>";
   echo " MB<p>";
   echo "<input name='neupre' value='$altpre'>";
   echo " Preis<p>";
   echo "<input name='neuart' value='$auswahl'>";
   echo " Artikelnummer<p>";
   echo "<input name='neupro' value='$altpro'>";
   echo " Erstes Produktionsdatum<p>";
   echo "<input type='hidden' name='oriart' ";
   echo " value='$auswahl'>";
   echo "<input type='submit' ";
   echo " value='Änderungen in Datenbank speichern'>";
   echo "<p><input type='reset'>";
   echo "</form>";

   mysql_close($db);
}
else
   echo "Es wurde kein Datensatz ausgewählt.<p>";
?>
</body>
</html>

Lösung zu Übung UF18, Teil C

<html>
<body>

<?php

   $db = mysql_connect();

   $sqlab = "update fp set hersteller = '$neuher',";
   $sqlab .= "typ = '$neutyp', mb = $neumb,";
   $sqlab .= "preis = $neupre,";
   $sqlab .= "artnummer = '$neuart'";
   $sqlab .= "where artnummer = '$oriart'";

   mysql_db_query("hardware", $sqlab);

   $num = mysql_affected_rows();
   if ($num>0)
      echo "Der Datensatz wurde geändert.<p>";
   else
      echo "Der Datensatz wurde nicht geändert.<p>";

   mysql_close($db);
?>

Zurück zur <a href="uf18a.php">Auswahl</a>

</body>
</html>

Lösung zu Übung UF19, Teil A

<html>
<body>
Wählen Sie aus, welcher Datensatz gelöscht werden soll:<p>
<form action = "uf19b.php" method = "post">
<?php
   $db = mysql_connect();
   $res = mysql_db_query("hardware",
          "select * from fp");
   $num = mysql_num_rows($res);

   // Tabellenbeginn
   echo "<table border>";

   // Überschrift
   echo "<tr> <td>Auswahl</td> <td>Hersteller</td>";
   echo "<td>Typ</td> <td>MB</td> <td>Preis</td>";
   echo "<td>Artikelnummer</td>";
   echo "<td>erstes Produktionsdatum</td> </tr>";

   for ($i=0; $i<$num; $i++)
   {
      $her = mysql_result($res, $i, "hersteller");
      $typ = mysql_result($res, $i, "typ");
      $mb  = mysql_result($res, $i, "mb");
      $pre = mysql_result($res, $i, "preis");
      $art = mysql_result($res, $i, "artnummer");
      $pro = mysql_result($res, $i, "prod");

      // Tabellenzeile mit -zellen
      echo "<tr> <td><input type='radio' name='auswahl'";
      echo " value='$art'></td> <td>$her</td> ";
      echo "<td>$typ</td> <td>$mb</td> <td>$pre</td> ";
      echo "<td>$art</td> <td>$pro</td> </tr>";
   }

   // Tabellenende
   echo "</table>";

   mysql_close($db);
?>
   <p>
   <input type="submit" value="Datensatz löschen">
</form>
</body>
</html>

Lösung zu Übung UF19, Teil B

<html>
<body>

<?php

if ($auswahl)
{
   $db = mysql_connect();
   $sqlab = "delete from fp where";
   $sqlab .= " artnummer = '$auswahl'";

   mysql_db_query("hardware", $sqlab);

   $num = mysql_affected_rows();
   if ($num>0)
      echo "Der Datensatz wurde gelöscht.<p>";
   else
      echo "Der Datensatz wurde nicht gelöscht.<p>";

   mysql_close($db);
}
else
   echo "Es wurde kein Datensatz ausgewählt<p>";

?>

Zurück zur <a href="uf19a.php">Auswahl</a>

</body>
</html>

Galileo Computing

N.6 Text-Dateien  downtop

Lösung zu Übung UG03

<html>
<body>

<?php
   $fp = fopen("ug03data.txt","r");
   if ($fp)
   {
      echo "<table border>";
      echo "<tr> <td>Nummer</td> <td>Nachname</td>";
      echo "<td>Vorname</td> </tr>";
      $nr = 0;
      while (!feof($fp))
      {
         $vn = fgets($fp, 100);
         $nn = fgets($fp, 100);
         $nr = $nr + 1;
         echo "<tr> <td>$nr</td> <td>$nn</td>";
         echo "<td>$vn</td> </tr>";
      }
      echo "</table>";
      fclose($fp);
   }
   else
      echo "Datei wurde nicht gefunden!";
?>

</body>
</html>

Lösung zu Übung UG06

<html>
<body>
<?php

   // alle Dateien öffnen
   $fpdata = fopen("ug06data.txt","r");
   $fpa = fopen("ug06a.txt","w");
   $fpb = fopen("ug06b.txt","a");

   // alle Dateien geöffnet ?
   if ($fpdata && $fpa && $fpb)
   {
      // Zähler initialisieren
      $gz = 0;
      $az = 0;
      $bz = 0;

      // Ausgabedateien sperren
      flock($fpa,2);
      flock($fpb,2);

      while (!feof($fpdata))
      {
         $gz = $gz + 1;
         $nr = fgets($fpdata, 100);
         $nn = fgets($fpdata, 100);
         $vn = fgets($fpdata, 100);

         // in erste Ausgabedatei
         if ($nr<1000)
         {
            $az = $az + 1;
            fputs ($fpa, "$nr$nn$vn");
         }

         // in zweite Ausgabedatei
         else
         {
            $bz = $bz + 1;
            fputs ($fpb, "$nr$nn$vn");
         }
      }

      // Sperren aufheben
      flock($fpa,3);
      flock($fpb,3);

      // alle Dateien schließen
      fclose($fpdata);
      fclose($fpa);
      fclose($fpb);

      // Kontrolle
      echo "Es wurden $gz Datensätze gefunden,<p>";
      echo "davon wurden $az Datensätze in die ";
      echo "Datei ug06a.txt geschrieben<p>";
      echo "und $bz Datensätze an die Datei ";
      echo "ug06b.txt angehängt.";
   }
   else
   {
      echo "Eine der Dateien konnte nicht ";
      echo "geöffnet werden.<p>";
   }
?>
</body>
</html>

Galileo Computing

N.7 Arrays  downtop

Lösung zu Übung UH02

<html>
<body>

<?php
   $vorname = array("Peter", "Markus", "Jens",
                    "Julia", "Monika", "Gerd");
   $alter = array(35,42,16,17,42,55);
   for($i=0; $i<=5; $i = $i+1)
   {
      echo "$vorname[$i], $alter[$i] Jahre<p>";
   }
?>

</body>
</html>

Lösung zu Übung UH04

<html>
<body>

<?php
   $vorname = array("Peter", "Markus", "Jens",
                    "Julia", "Monika", "Gerd");
   $alter = array(35,42,16,17,42,55);
   $min = $alter[0];
   $posmin = 0;

   for($i=1; $i<=5; $i=$i+1)
   {
      if ($alter[$i] < $min)
      {
         $min = $alter[$i];
         $posmin = $i;
      }
   }

   echo "$vorname[$posmin], $min Jahre, ";
   echo "ist der jüngste von allen.";
?>

</body>
</html>

Lösung zu Übung UH06

<html>
<body>

<?php
   $vorname = array("Peter", "Markus", "Jens",
                    "Julia", "Monika", "Gerd");
   $alter = array(35,42,16,17,42,55);
   sort($vorname);
   for($i=0; $i<=5; $i=$i+1)
      echo "$vorname[$i], ";
   echo "<p>";
   rsort($alter);
   for($i=0; $i<=5; $i=$i+1)
      echo "$alter[$i], ";
?>

</body>
</html>

Lösung zu Übung UH08

<html>
<body>

<?php
   $fp = fopen("uh08data.txt","r");
   if ($fp)
   {
      // Alle Werte in ein Feld lesen
      $i = 0;
      while (!feof($fp))
      {
         $zeile = fgets($fp, 100);
         $zeile = fgets($fp, 100);
         $mit[$i] = doubleval($zeile);
         $i = $i + 1;
      }
      fclose($fp);

      // Anzahl feststellen
      $anzahl = sizeof($mit);

      // Werte zählen
      $cjung = 0;
      $calt = 0;
      for($i=0; $i<$anzahl; $i=$i+1)
      {
         if ($mit[$i] < 25) $cjung = $cjung + 1;
         if ($mit[$i] > 50) $calt = $calt + 1;
      }

      // Ausgabe
      if ($anzahl > 0)
      {
         $anteiljung = $cjung / $anzahl * 100;
         $anteilalt = $calt / $anzahl * 100;
         $ausgabe = number_format($anteiljung,1);
         echo "$ausgabe Prozent der Mitarbeiter ";
         echo "sind jünger als 25 Jahre<p>";
         $ausgabe = number_format($anteilalt,1);
         echo "$ausgabe Prozent der Mitarbeiter ";
         echo "sind älter als 50 Jahre";
      }
      else
         echo "Die Datei beinhaltete keine Werte.";
   }
   else
      echo "Datei wurde nicht gefunden.";
?>

</body>
</html>

Lösung zu Übung UH10

<html>
<body>

<?php
   $age = array("Peter"=>35, "Markus"=>42,
                "Jens"=>16, "Julia"=>17,
                "Monika"=>42, "Gerd"=>55);

   // Alle Elemente aus dem Array
   while(list($vname,$lebensalter) = each($age))
      echo "$vname, $lebensalter Jahre<p>";
?>

</body>
</html>

Lösung zu Übung UH13

<html>
<body>
<?php
   // Die Informationen werden aus der Datenbank geholt
   $db = mysql_connect();
   $res = mysql_db_query("hardware", "select * from fp");
   mysql_close($db);
   // Die Datensätze werden einzeln verarbeitet
   echo "<TABLE BORDER>";
   echo "<TR> <TD><B>Artikelnummer</B></TD>
        <TD><B>MByte</B></TD> <TD><B>Preis</B></TD> 
        <TD><B>MByte/DM</B></TD> </TR>";
   while($zeile = mysql_fetch_array($res))
   {
      $erg = $zeile["mb"] / $zeile["preis"];
      echo "<TR><TD>" . $zeile["artnummer"] . 
           "</TD><TD>" . $zeile["mb"] . "</TD><TD>" .
           $zeile["preis"] . "</TD><TD>$erg</TD></TR>";
   }
   echo "</TABLE>";

?>
</body>
</html>

Lösung zu Übung UH15

<html>
<body>
<?php
   $fp = array(array("Quantum", "Fireball CX",
                     6400, 215, "HDA-208"),
               array("Quantum", "Fireball Plus",
                     9100, 269, "HDA-163"),
               array("Fujitsu", "MPE 3136",
                     13600, 275, "HDA-171"),
               array("Seagate", "310232A",
                     10200, 245, "HDA-144"));

   for($i=0; $i<4; $i = $i+1)
   {
      for($k=0; $k<5; $k = $k+1)
      {
         echo $fp[$i][$k] . " ";
      }
      echo "<p>";
   }
?>
</body>
</html>

Lösung zu Übung UH17

<html>
<body>
<?php
   $fp = array(array("Hersteller"=>"Quantum",
                     "Typ"=>"Fireball CX",
                     "MB"=>6400, "Preis"=>215,
                     "Artikelnummer"=>"HDA-208"),
               array("Hersteller"=>"Quantum",
                     "Typ"=>"Fireball Plus",
                     "MB"=>9100, "Preis"=>269,
                     "Artikelnummer"=>"HDA-163"),
               array("Hersteller"=>"Fujitsu",
                     "Typ"=>"MPE 3136",
                     "MB"=>13600, "Preis"=>275,
                     "Artikelnummer"=>"HDA-171"),
               array("Hersteller"=>"Seagate",
                     "Typ"=>"310232A",
                     "MB"=>10200, "Preis"=>245,
                     "Artikelnummer"=>"HDA-144"));

   for($i=0; $i<4; $i=$i+1)
   {
      while(list($name, $wert) = each($fp[$i]))
      {
         echo "$wert ";
      }
      echo "<p>";
   }
?>
</body>
</html>

Lösung zu Übung UH19

<html>
<body>
<?php
   // Die Informationen werden aus der Datenbank geholt
   $db = mysql_connect();
   $res = mysql_db_query("hardware", "select * from fp");
   mysql_close($db);

   // Die Datensätze werden einzeln gelesen
   while($temp = mysql_fetch_array($res))
   {
      // Der Key für den zweidim. Array wird ermittelt
      $ax = $temp["artnummer"];

      // Die Informationen aus dem Datensatz werden über
         den Key in dem zweidim. Feld gespeichert
      $tab[$ax]["hersteller"] = $temp["hersteller"];
      $tab[$ax]["typ"] = $temp["typ"];
      $tab[$ax]["mb"] = $temp["mb"];
      $tab[$ax]["preis"] = $temp["preis"];
      $tab[$ax]["prod"] = $temp["prod"];
   }

   echo "<TABLE BORDER>";
   echo "<TR> <TD><B>Artikelnummer</B></TD> 
         <TD><B>MByte</B></TD> <TD><B>Preis</B></TD> 
         <TD><B>MByte/DM</B></TD> </TR>";

   while(list($dsname,$dswert) = each($tab))
   {
      $tab[$dsname]["plv"] =
           $tab[$dsname]["mb"] / $tab[$dsname]["preis"];
      echo "<TR><TD>" . $dsname . "</TD><TD>" .
           $tab[$dsname]["mb"] . "</TD><TD>" .
           $tab[$dsname]["preis"] . "</TD><TD>" .
           $tab[$dsname]["plv"] . "</TD></TR>";
   }
   echo "</TABLE>";

?>
</body>
</html>

Galileo Computing

N.8 Mathematische Funktionen  downtop

Lösung zu Übung UI08

<html>
<body>

<TABLE BORDER>
<TR>
   <TD>Wert</TD>
   <TD>Bogenmaß</TD>
   <TD>Sin</TD>
   <TD>Cos</TD>
   <TD>Tan</TD>
   <TD>Wurzel</TD>
   <TD>Quadrat</TD>
   <TD>Nat. Log.</TD>
   <TD>10er-Log.</TD>
   <TD>e hoch</TD>
   <TD>Binär</TD>
   <TD>Hexadez.</TD>
</TR>

<?php
for ($w=5; $w<=85; $w=$w+5)
{
   $wb    = $w / 180 * M_PI;
   $wbaus = number_format($wb,3,",",".");
   $sinus = number_format(sin($wb),3,",",".");
   $cosin = number_format(cos($wb),3,",",".");
   $tang  = number_format(tan($wb),3,",",".");
   $wurz  = number_format(sqrt($w),3,",",".");
   $quad  = pow($w,2);
   $logn  = number_format(log($w),3,",",".");
   $log10 = number_format(log10($w),3,",",".");
   $ehoch = number_format(exp($w/10),3,",",".");
   $bin   = decbin($w);
   $hexa  = dechex($w);

   echo "<TR><TD>$w</TD><TD>$wbaus</TD>";
   echo "<TD>$sinus</TD><TD>$cosin</TD>";
   echo "<TD>$tang</TD><TD>$wurz</TD>";
   echo "<TD>$quad</TD><TD>$logn</TD>";
   echo "<TD>$log10</TD><TD>$ehoch</TD>";
   echo "<TD>$bin</TD><TD>$hexa</TD></TR>";
}
?>
</TABLE>
</body>
</html>

Lösung zu Übung UI09, Formular

<html>
<body>
Tragen Sie Betrag, Laufzeit und Zinssatz Ihrer Anlage
 ein, und senden Sie das Formular ab.
<form action = "ui09.php" method = "post">
<input name="betrag" size="15"> Betrag in DM<p>
<input name="laufzeit" size="15"> Laufzeit in Jahren<p>
<input name="zinssatz" size="15"> Zinssatz in Prozent<p>
<input type="submit" value="Absenden"><p>
</form>
</body>
</html>

Lösung zu Übung UI09, Programm

<html>
<body>
<?php
   $erg = $betrag * pow(1 + $zinssatz/100, $laufzeit);
   $erg = number_format($erg,2,",",".");
   echo "Bei einem angelegten Betrag von $betrag DM,";
   echo " einer Laufzeit von $laufzeit Jahr(en) und";
   echo " einem Zinssatz von $zinssatz % ergibt sich";
   echo " ein End-Betrag von $erg DM.";
?>
</body>
</html>

Galileo Computing

N.9 Zeichenketten-Funktionen  toptop

Lösung zu Übung UJ08

<html>
<body>
<?php
   $fp = fopen("uj07data.txt","r");
   if ($fp)
   {
      // Erste Zeile lesen
      $zeile = fgets($fp, 100);

      // Länge feststellen
      $lg = strlen($zeile);

      // Jedes Zeichen einzeln umwandeln
      for($i=0; $i<$lg; $i++)
      {
         $char = substr($zeile,$i,1);
         $code = ord($char);
         $newcode = $code – 1;
         $newchar = chr($newcode);
         echo $newchar;
      }
      fclose($fp);
   }
   else
      echo "Datei wurde nicht gefunden.";
?>
</body>
</html>
  

Perl – Der Einstieg




Copyright © Galileo Press GmbH 2001 - 2002
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken und speichern. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
Die Veröffentlichung der Inhalte oder Teilen davon bedarf der ausdrücklichen schriftlichen Genehmigung von Galileo Press. Falls Sie Interesse daran haben sollten, die Inhalte auf Ihrer Website oder einer CD anzubieten, melden Sie sich bitte bei: stefan.krumbiegel@galileo-press.de


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, fon: 0228.42150.0, fax 0228.42150.77, info@galileo-press.de