FoSsi: Woher kommen diese "komischen" Zahlen

Hallo zusammen,

Ich habe da ein kleines Problem, welches ich auch bisher nicht mit dem PHP-Handbuch, der Forensuche, usw. lösen konnte.
Vielleicht hat ja jemand einem kleinen Hinweis für mich wo etwas darüber steht, damit ich nachlesen kann, oder einen Tipp. :)

Also kurz zur Erklärung:

Ich möchte in einer index.php den Content eines <div>s über Buttons/Links dynamisch einbinden/ändern.

Übergeben wird mit dem Link eine Variable,
z.B. <a href="index.php?item=home">Home</a>

In der index.php gibt es dann ein <div> welches diese Variable verarbeiten und den Inhalt der entsprechenden Datei einbinden soll:
<div>
  <?php
    $sites = array (
      "home" => "1.html",
      "einzelzimmer" => "2.html",
      "gaestebuch" => "gb.html" );

if ($_GET == false) {
      echo readfile ("1.php");
    }
    else
    {
      foreach($sites as $key => $site) {
        if ($_GET['item'] == $key) {
        echo readfile ($site);
        }
      }
    }
  ?>
</div>

in 1.html steht z.B. <h1>Blabla -- 1</h1>
in 2.html entsprechend .. -- 2 ..
in gb.html ein <iframe>...</iframe>

Soweit funktioniert das auch gut; die Inhalte werden auch entsprechend eingebunden.

Allerdings erscheint jeweils _unter_ den eingebundenen Inhalten im Browser eine Zahl.
Im Falle der Verwendung von readfile im PHP-Code oben ist es bei 1.html und 2.html eine 19, bei gb.html eine 177.

Verwende ich statt readfile include ist es jeweils eine 1.

Der Browser-Quelltext fördert bei dem <div>-Block z.B. folgendes zu Tage:
<div>
  <h1>Blabla -- 1</h1>19
</div>

Wo kommen diese komischen Zahlen jetzt her, sei es 19, 177, 1 oder was auch immer?

Vielen Dank schon mal für Eure Hilfe. :)
FoSsi

  1. Hi,

    Wo kommen diese komischen Zahlen jetzt her, sei es 19, 177, 1 oder was auch immer?

    das liegt am echo, include() gibt true(1) oder false (0) zurück,
    wenn du also echo include() machst wird 1 oder 0 zurückgegeben.

    MfG

  2. Hi,

    Ich habe da ein kleines Problem, welches ich auch bisher nicht mit dem PHP-Handbuch, der Forensuche, usw. lösen konnte.

    Seltsam. Dabei steht die Lösung doch im PHP-Handbuch.

    echo readfile ("1.php");
            echo readfile ($site);

    Was ist der Rückgabewert von readfile?
    Warum sollte dieser _nicht_ erscheinen, wo Du ihn doch explizit per echo in die Ausgabe schreibst?

    Verwende ich statt readfile include ist es jeweils eine 1.

    Wo kommen diese komischen Zahlen jetzt her, sei es 19, 177, 1 oder was auch immer?

    Die sind eine logische Konsequenz Deines Codes.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi Andreas,

      Stimmt !!!
      Ich kleiner Trollo hab das völlig übersehen.
      Jetzt gehts auch richtig. :)

      Vielen Dank an alle.
      FoSsi

  3. Hallo,

    zu readfile -> http://www.php.net/readfile

    gibt die anzahl der gelesenen Bytes zurück :)

    mfg

    PHP_Dude