PHP-Anfänger

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP-Anfänger

    In einer Datei index.php möchte ich die Variable $name ausgeben, die aber erst später im Quelltext per include von liste.inc geholt wird.
    Wie kann ich $name schon in der Begrüßung ausgeben?

    Siehe nachfolgenden Code:

    index.php:

    HTML-Code:
    <html>
    <head>
    </head>
    <body>
    
    
    <?php
     
    echo "Hallo Herr ".$name;
    
    // liste.inc enthält $name und weiteren Quellcode
    include("liste.inc");
    
    echo "Auf Wiedersehen Herr ".$name;
    
    ?>
    
    
    </body>
    </html>
    Bitte nennt mir eine Lösung oder Suchbegriffe - bitte keine Belehrungen, Danke dafür.
    Zuletzt geändert von wspl; 13.04.2012, 21:02.

  • #2
    Ganz einfach, includiere die liste.inc vorher. Wenn das nicht möglich ist, solltest du dein Konzept noch mal überdenken.

    Peter

    Btw: <http> ist falsch. Sollte wohl <html> heißen.
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Hallo Peter.

      logisch <html>

      vorher includieren geht nicht, da liste.inc weiteren Code enthält

      Gruß

      Kommentar


      • #4
        Zitat von wspl Beitrag anzeigen
        vorher includieren geht nicht, da liste.inc weiteren Code enthält
        Dann lager den weiteren Code wenn nötig in Funktionen aus und ruf die dann bei Bedarf auf.

        Peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Schreib die Variable doch in eine $_Session, dann kannst du sie nach der Ausgabe beim includen wieder einfließen lassen und sie geht dir nicht verloren.

          Kommentar


          • #6
            Zitat von wspl Beitrag anzeigen
            In einer Datei index.php möchte ich die Variable $name ausgeben, die aber erst später im Quelltext per include von liste.inc geholt wird.
            Wie kann ich $name schon in der Begrüßung ausgeben? ...
            Du kannst den Wert einer Variablen erst ausgeben, wenn du ihn "hast". Vorher geht nicht, dazu müsste dein Script in die Zukunft sehen können.

            Es bleiben also zwei Möglichkeiten:

            Entweder du holst den Wert für die Variable vor der Ausgabe des Textes,
            oder du speicherst den Text ab, holst den Wert der Variablen, ersetzt ihr Auftreten im Text (Platzhalter) und gibst den Text anschließen aus.

            ... Bitte nennt mir eine Lösung oder Suchbegriffe ...
            Für den Lösungsweg Nummer zwei nennt sich der Suchbegriff wohl "Template-Engine" (deutsch). Gibts für PHP wie Sand am Meer und ist meist unnötig wie ein Kropf[0]. Aber um das Prinzip zu verstehen, macht es sich ganz gut, einmal in die entsprechenden Quelltexte zu schauen.

            Siehe nachfolgenden Code: ...
            PHP-Code:
            <html>
            <head>
            </head>
            <body>
            <?php
             
            echo "Hallo Herr ".$name;
            // liste.inc enthält $name und weiteren Quellcode
            include("liste.inc");
            echo 
            "Auf Wiedersehen Herr ".$name;
            ?>
            </body>
            </html>
            Wenn du PHP-Code in HTML einbettest, wird das natürlich schwierig. Dies wird (wegen der damit entstehenden Probleme) gemeinhin als schlechter Stil empfunden.

            Daher solltest du dich informieren, welche besseren Möglichkeiten es gibt, per PHP-Script Text (oder Daten) an einen Browser zu schicken (auszugeben) und wie Platzhalter ersetzt werden können.

            Guckst du:

            Echo() kann eine kommaseparierte Liste von Ausdrücken (also auch Variablen) ausgeben.

            Printf() kann Platzhalter mit Ausgaben in konfigurierbarer Formatierung ersetzen und ausgeben. Die ausführliche Erklärung der Platzhalter findet sich auf der Handbuchseite zu sprintf().

            Mit __halt_compiler und __COMPILER_HALT_OFFSET__ lassen sich auszugebende Daten am Ende eines PHP-Scripts ablegen und auslesen.

            Variableninterpolation heißt das Zauberwort, wenn in Zeichenketten-Konstanten abgelegte Variablen durch ihre Werte ersetzt werden.

            Längere Zeichenketten lassen sich per HEREDOC-Syntax in einem Script notieren.

            Längere Zeichenketten mit interpolierten Variablen gibts per NOWDOC.

            Ein Anwendungsbeispiel mit printf() und der von dir gewünschten Reihenfolge:

            PHP-Code:
            <?php 
            // HTML-Geruest mit einfachen %s Platzhaltern
            // Wichtig:
            //      Im Quelltext auftretende %-Zeichen muessen verdoppelt werden,
            //      sonst beschwert sich printf() spaeter
            $html '<html>
            <head>
            </head>
            <body>
            Hallo Herr %s
            ...
            Auf Wiedersehen Herr %s
            </body>
            </html>'
            ;

            // Einlesen der passenden Variablen
            include_once('liste.inc');

            // Ausgabe des HTML-Geruests bei gleichzeitigem Ersetzen
            // der Platzhalter
            printf(
                
            $html// HTML-Geruest (a.k.a. Template)
                
            $name// ein $name fuer jeden Platzhalter
                
            $name
            );
            --
            [0] Der mit einem "f".
            Zuletzt geändert von fireweasel; 14.04.2012, 11:47.
            Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

            Kommentar


            • #7
              Vielen Dank, ich werde mich mit euren Vorschlägen befassen.

              Kommentar

              Lädt...
              X