Hallo,
ich würde gerne auch mal hier fragen welche Schreibweise für den Include Befehl die Richtig ist.
<? include ("meinedatei"); ?>
oder
<?php include ('meinedatei'); ?>
Wenn ich das googel, kommen auch noch andere Schreibweisen hervor.
Hintergrund dieser Frage ist, das ich meine Menüleiste http://www.michaelfriedel.de auslagern möchte, da ich keine Lust mehr habe zich Seiten immer abzuändern wenn ich einen Menüpunkt hinzufügen/verändern möchte. Dieses zieht nach sich, das ich von HTML auf PHP umsteigen muß.
Die obere Schreibweise habe ich vorab Testweise mal genommen, …bei STRATO hochgeladen, …und es funktioniert.
Auch soll die Endung der ausgelagerten ( zu includenden ) Datei NICHT umbedingt egal sein.
.htm / .txt / .php / .inc.php / .inc.html
Meine ausgelagerte Datei würde z.Z. nur aus dem html Code für das Menü bestehen.
Die erste Variante funktioniert nur, wenn in der php.ini short_open_tag erlaubt sind, diese können aber zu problemen kommen, sobald eine XML-Deklaration im Dokument vorkommt, denn die beginnen auch mit <? und werden dann fälschlicher Weise als PHP interpretiert.
Falls dich noch interessiert, weshalb bei der einen Schreibweise doppelte " und bei der anderen einfache ’ Anführungszeichen genutzt werden:
In " stehende Zeichenketten werden von PHP geparsed, also falls vorhanden zB Variablen innerhalb des Strings ersetzt. Bei ’ ist dies nicht der Fall. Solltest du aber nur einen einfachen Dateinamen angeben wollen, ist es egal welche Anführungszeichen du benutzt.
Danke euch erstmal,
aber die Antworten bringen wieder neue Fragen auf
Also ist die Schreibweise egal, solange die Seiten das Anzeigen was sie anzeigen sollen oder wie sie aussehen sollen, wenn ich sie bei Strato hochlade, dann aufrufe und mit Firefox und IE teste?
Liegt also letztendlich an den „Server-Einstellungen“ von meinem Provider!?
Oder kann es auch sein, das durch die „andere“ Schreibweise jemand der mit einer neueren/älteren Version von Firefox, IE, Safari und wie sie alle heißen dadurch nicht das Angezeigt bekommt wie es sein soll? ( jetzt nur in Bezug auf die Include Befehlszeile )
P.S.
Zur Zeit ist in der Xampp lite php.ini short_open_tag bei mir auf On gesetzt.
Dem Browser ist der ganze Ablauf egal. PHP wird serverseitig ausgeführt, der Client bekommt nichts mit…
Also ja, es liegt an den Konfigurationen des Servers. Aber bei dir funktioniert es mit short tags, also kannst du es getrost so belassen.
Verzichte immer auf Shorttags. So ersparst du dir zeitaufwendige Änderungen, wenn du mit deinem Script mal umziehst und dort Shorttags deaktiviert sind.
Hallo,
klar, im Internet findet man vieles. Muss aber nicht immer unbedingt richtig sein. Und ja, ich weiß, PHP ist eine zimlich großzügige Interpretersprache, die viele Sachen zulässt.
Laut meiner Auffassung sollte folgendes am wenigstens Probleme bereiten und ist auch mehr „Standardkonform“:
Es handelt sich hierbei nicht um einen Character Datentyp, also fallen schon einmal einfache Anführungszeichen weg. Es handelt sich auch hier um eine Methode. Bei Methoden in PHP in 90% der Fällen IMMER runde Klammer auf, runde Klammer zu.
Lange Rede, kurzer Sinn. Ich würde es so machen:
include("datei.php");
Mit include würde ich aber auch vorsichtig umgehen. Es kopiert nämlich temporär die Zeilen aus dem anderen PHP Skript in das aktuelle hinein. Damit wird es nur länger und der Benutzer muss länger warten.
Ich halte es für guten Stil, nur dann doppelte Anführungszeichen zu verwenden, wenn es einen Grund dafür gibt (etwa eine Variablenersetzung oder ein Zeilenumbruch im String oder ähnliches).
Es handelt sich auch hier um eine Methode. Bei Methoden in PHP in 90% der Fällen IMMER runde Klammer auf, runde Klammer zu.
100% der Fälle. Nur handelt es sich wie gesagt nicht um eine Methode. (Wenn überhaupt übrigens eigentlich um eine Funktion.)
Was crash in #4 schreibt, finde ich auch am schönsten.
Mit include würde ich aber auch vorsichtig umgehen. Es kopiert nämlich temporär die Zeilen aus dem anderen PHP Skript in das aktuelle hinein. Damit wird es nur länger und der Benutzer muss länger warten.
Das ist Unsinn und widerspricht grundlegenden Programmierkonzepten wie DRY und KISS.