Ankündigung

Einklappen
Keine Ankündigung bisher.

datei auf jeden fall einbinden

Einklappen

Neue Werbung 2019

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

  • datei auf jeden fall einbinden

    hi,
    wie kann man eine datei unabhängig von der programmlogik einbinden?
    früher konnte man ja require benutzen, welches aber bei php versionen höher als 4.0.3 (glaub ich) nicht mehr geht... gibts dagür irgendeine ersatz funktion?


  • #2
    include?
    Klick mich


    Kommentar


    • #3
      require wurde aus php entfernt?
      Das solltest Du mal das Doku-Team wissen lassen.
      http://de3.php.net/require

      Kommentar


      • #4
        Re: datei auf jeden fall einbinden

        Zitat von ingol
        wie kann man eine datei unabhängig von der programmlogik einbinden?
        Wie meinst du das?

        PHP-Code:
        <?php
        if (false) {
          
        require_trotzdem 'datei.php';
        }
        ?>
        ??

        Kommentar


        • #5
          @Bruchpilot
          ne require() wurde nicht entfernt. nur vor php 4.0.3 hat require() dateien unabhängig von der programmlogik eingebunden, was nu net mehr geht.

          @Zergling
          Ja, genauso mein ich das. gibt es da irgendeine ersatzfunktion ?

          require_trotzdem() funktioniert bei mir leider auch net

          Kommentar


          • #6
            Re: datei auf jeden fall einbinden

            die Logik die dahinter steckt will mir nicht einleuchten

            Zitat von ingol
            früher konnte man ja require benutzen, welches aber bei php versionen höher als 4.0.3 (glaub ich) nicht mehr geht...
            hä? der einzigste Unterschied zwischen require und include is doch der das wenn ne Datei nicht gefunden wurde require n Fehler wirft und das Script abbricht während include blos ein warning bringt...das war meines Wissens schon immer so gewesen und ist auch noch weiterhin so.
            Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

            Kommentar


            • #7
              halbrichtig, weil das error-handling nicht immer der einzige unterschied war.

              "Anmerkung: Für frühere Versionen als PHP 4.0.2 gilt folgendes: require() wird immer versuchen die Zieldatei zu lesen, selbst wenn die Zeile in der die Anweisung steht, nie ausgeführt wird. Eine bedingte Anweisung hat keine Auswirkungen auf require(). Wenn jedoch die Zeile in der require() steht, nie ausgeführt wird, wird auch der Code der Zieldatei nie ausgeführt werden. Ähnliches gilt für Schleifenstrukturen, diese beeinflussen das Verhalten von require() nicht. Obwohl der Code, der in der Zieldatei enthalten ist, zur Schleife gehört, wird require() selbst nur einmal ausgeführt. "

              Quelle:
              http://de3.php.net/require

              Kommentar


              • #8
                Nein eine solche Funktion gibt es nicht.
                Ist sowieso schlechter Stil. Wenn eine Datei auf jeden Fall eingebunden werden soll, dann macht es keinen Sinn, sie in eine Anweisung zu packen, dann gehört sie entweder ganz nach oben oder an die Stelle wo sie gebraucht wird. Und wenn du sie nur in der Schleife brauchst, muss sie auch nicht auf jeden Fall eingebunden werden.

                Kommentar


                • #9
                  naja trotzdem will mir der Sinn ned einleuchten warum man das brauchen könnte
                  Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.

                  Kommentar


                  • #10
                    Bräuchte das aus Design Gründen... hier z.b.

                    man gibt über ein formular daten ein. wenn die daten nicht korrekt eingegeben wurden, soll die fehlermeldung auf der seite OBEN erscheinen und DARUNTER dann das Formular.

                    Code:
                    // wenn variable leer, dann gib fehlermeldung aus und brech script ab
                    if (trim($_POST['art_name']) == "") {
                        die(error_design($de['art_name']));
                    }
                    //wenn obige bedingung true ist, dann soll das formular trotzdem noch eingebunden werden
                    require_trotzdem "formular.php";
                    klar könnte ich auch echo() statt die() nehmen, dann wär alles in butter, aber ich wollte nur wissen ob es auch irgendwie mit die() geht. hab auch ka warum die php crew das geändert hat... war doch ne nützliche funktion...

                    Kommentar


                    • #11
                      Warum? Na damit man (hier du) sauberer programmiert.

                      Du musst die Formularprüfung eben einfach nach oben setzen ^^

                      Kommentar


                      • #12
                        Code:
                        // wenn variable leer, dann gib fehlermeldung aus und brech script ab
                        if (trim($_POST['art_name']) == "") {
                            die(error_design($de['art_name']));
                        }
                        //wenn obige bedingung true ist, dann soll das formular trotzdem noch eingebunden werden
                        require_trotzdem "formular.php";
                        Die Semantik des Befehles die() ist nunmal, dass das Programm danach beendet wird. Da kann man nix drehen und das macht auch keinen Sinn. Genau so einleuchtend wäre es, von dem Befehl echo zu verlangen, dass er *keine* Bildschirmausgabe bewirkt, aber das Programm abbricht. Also Schwachsinn.

                        Außerdem ist dein Problem auf mind. 10 anderen Wegen ohne großen mehraufwand lösbar.

                        Code:
                        // wenn variable leer, dann gib fehlermeldung aus und brech script ab
                        if (trim($_POST['art_name']) == "") {
                            echo error_design($de['art_name']);
                            require "formular.php";
                            exit;
                        }
                        //wenn obige bedingung true ist, dann soll das formular trotzdem noch eingebunden werden
                        require "formular.php";

                        Kommentar

                        Lädt...
                        X