Mischa: Frage zum Transfervolumen

Hallo,
ich habe eine Frage zum Transfervolumen bei PHP. Angenommen ich habe ein PHP-Script, das wie folgt aufgebaut ist:

if ($txt=="1") {
echo "Text 1 ... blablabla";
}
if ($txt=="2") {
echo "Text 2 ... blablabla";
}
.
.
.
if ($txt=="99") {
echo "Text 99 ... blablabla";
}
if ($txt=="100") {
echo "Text 100 ... blablabla";
}

Angenommen die PHP-Datei ist 10 MB groß. Wird dann auf dem Rechner des Besuchers die volle PHP-Datei (10 MB!) geladen oder wird nur der gefragte Bereich geladen, beispielsweise der Text 99 bei if $txt=="99" (45 KB)? [Dass ich beim Upload die 10 MB hochladen muss ist klar - Es geht mir um den Download]
Ich hoffe ihr versteht, was ich meine. Und danke im voraus!

  1. Hallo,

    Da PHP auf dem Server ausgeführt wird, und nur das _ergebnis_ an den Client gesendet wird, wird er auch niemals 10MB erhalten :)

    Zu deinem Skript, rein Wartungstechnisch ziemlich umständlich findest du nicht ?

    kleiner tipp:

    anstatt die texte in das hauptfile zu schreiben schreib sie in eigene datein. zb. 1.txt, 2.txt usw.

    im php file genügt dann ein simples:

    if(isset($id) && $id!=""){
     readfile("/path/to/file/".$id.".txt");
    }

    durch die angabe des pfades innerhalb von readfile bist du auch vor evil attacken wie $id="/etc/passwd" geschützt.

    lg
    Ludwig

    1. Moin,

      im php file genügt dann ein simples:

      if(isset($id) && $id!=""){
      readfile("/path/to/file/".$id.".txt");
      }
      durch die angabe des pfades innerhalb von readfile bist du auch vor evil attacken wie $id="/etc/passwd" geschützt.

      Noe bist du nicht. Dann schreibt man halt ../../../etc/password. Der korrekte Codeschnipsel wäre
       readfile("/path/to/file/".basename($id).".txt");
      oder noch besser (vorrausgesetzt du beschränkst dich wirklich auf Zahlen)
       readfile("/path/to/file/".((int)$id).".txt");
      Dann wird auch automatisch 0.txt eingebunden wenn etwas anderes als eine Zahl an $id übergeben wurde.

      --
      Henryk Plötz
      Grüße aus Berlin