Frage zu include-befehl!
choriz
- php
Hallohallo
Hab ne (dumme?) frage zu include, hab schon ewig rumgesucht aber nix gefunden:
Alle sagen immer, man oll statt frames den php befehl include benutzen...
Nur wie?
Wenn ich eine Navigation hab wie mach ich einen link, der z.b. in einem div-container ein anderes dokument anzeigen laesst?
Oder geht das nicht?
Wie kann man sowas sonst realisieren ausser mit frames oder iframe??
Schoene Gruesse
choriz
Moin!
Alle sagen immer, man oll statt frames den php befehl include benutzen...
Nur wie?
Du hast:
<?php include("dateiname"); ?>
probiert?
dann wird genau an dieser Stelle der Inhalt der includierten Datei eingefügt. Wenn diese wiederum php enthält muss auch dieses zwischen <?php ... ?> stehen.
Für reines html gibt es auch requiere("dateiname")
Beide Befehle sind in der Grundausstattung recht einfach, haben aber Feinheiten, auf die ich um die Zeit nicht eingehen kann (muss weg) sieh bitte auf den entsprechenden manual - Seiten nach.
Natürlich muss auf dem Server überhaupt PHP installiet sein...
fastix®
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
hi,
<?php include("dateiname"); ?>
dann wird genau an dieser Stelle der Inhalt der includierten Datei eingefügt. Wenn diese wiederum php enthält muss auch dieses zwischen <?php ... ?> stehen.
Für reines html gibt es auch requiere("dateiname")
der unterschied zwischen include und require ist marginal, sie unterscheiden sich m.W. _nur_ im fehlerhandling.
wenn der php-parser eine mit include eingebundene datei nicht finden/öffnen kann, gibt es lediglich eine warning, dein script läuft aber weiter.
require hingegen beendet im fehlerfalle die scriptausführung komplett.
welches verhalten sinnvoller für das script ist, sollte man individuell entscheiden. z.b. wenn der connect mit der datenbank in eine datei ausgelagert wurde, macht es in einem script mit DB-abfragen wenig sinn, dieses weiter laufen zu lassen, wenn die connect-datei nicht eingebunden werden konnte.
btw: include und require sind keine funktionen, benötigen also _keine_ runden klammern um den dateinamen.
include "dateixy.php";
reicht vollkommen aus.
gruss,
wahsaga
Hello,
der unterschied zwischen include und require ist marginal, sie unterscheiden sich m.W. _nur_ im fehlerhandling.
Und in der rekursionsfähigkeit.
Require() ist für die gesamte Scriptlaufzeit für alle Scopes gültig.
Include() ist Blockorientiert. Das bedeutet, dass eingebundene Variablen innerhalb einer Schleife, in der Include benutzt wird, immer wieder überschrieben werden.
Funktionen und Konstanten allerdings nicht.
Grüße
Tom
Moin!
Und in der rekursionsfähigkeit.
Require() ist für die gesamte Scriptlaufzeit für alle Scopes gültig.
Include() ist Blockorientiert. Das bedeutet, dass eingebundene Variablen innerhalb einer Schleife, in der Include benutzt wird, immer wieder überschrieben werden.
Das steht so aber nicht in der Doku:
"require() and include() are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error. In other words, don't hesitate to use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless."
Funktionen und Konstanten allerdings nicht.
Genau. Mehrfacheinbindung einer Funktionsdefinition oder einer Konstandendefinition führt zu einem Fehler.
- Sven Rautenberg
Hello,
Stichwort: Rekursionsfähigkeit.
Kann sein, dass mein Wissen da inzwischen überholt ist. Dar Hinweis stammte mal aus dem Krause http://bitworks.de/literatur/php/php4.zip und ich hatte es auch ausprobiert. So,wie er es beschrieben hatte, stimmte es auch.
Kann sein, dass neuere PHP-Versionen nach 4.1.x das inzwischen anders handhaben.
Macht doch selbst mal einen Schleifentest.
Übrigens: eval() ist im Prinzip das gleiche, wie include, nur wird vorher nch eine Syntaxprüfung vorgenommen und die Quelle ist ein String und keine Datei.
Grüße
Tom
Moin!
Kann sein, dass neuere PHP-Versionen nach 4.1.x das inzwischen anders handhaben.
php.net spricht von einer Unterschiedlichen Handhabung bei PHP vor 4.0.2!
Du solltest deinen Krause wegwerfen, der ist unaktuell.
Macht doch selbst mal einen Schleifentest.
Warum ich? Mach du doch! :)
- Sven Rautenberg
Hello,
Macht doch selbst mal einen Schleifentest.
Warum ich? Mach du doch! :)
Meckerkopp! Faulpelz! :-)
Ich werde es testen, sowie ich meinen Novell-Server gerettet habe. Da ist doch zuviel Stoff drauf, und da blöde Ding sirbt nach vier Jahren schon einfach so vor sich hin...
Grüße
Tom
hi,
Require() ist für die gesamte Scriptlaufzeit für alle Scopes gültig.
Include() ist Blockorientiert. Das bedeutet, dass eingebundene Variablen innerhalb einer Schleife, in der Include benutzt wird, immer wieder überschrieben werden.
das klingt interessant. hast du da eine quelle zu, die diesen umstand erläutert?
im php manual finde ich lediglich die aussage
"require() und include() sind in jeder Hinsicht gleichwertig mit der einen Ausnahme: der Umgang mit Fehlern."
(in der englischen, oft ja aktuelleren, version analog.)
dies war auch mein bisheriger kenntnisstand.
gruss,
wahsaga
Hi,
Für reines html gibt es auch requiere("dateiname")
das war afaik readfile, http://www.php.net/manual/de/function.readfile.php.
Gruesse Joachim
Du musst Deinen Links im Menu einen GET-Parameter mit auf den Weg geben, den Du dann entsprechend auswertest und daraufhin die passende Datei in Deinen Div-Container includest.
index.php
Menü
<a href="<?php echo $_SERVER['PHP_SELF']?>?action=a">Menupunkt1</a>
<a href="<?php echo $_SERVER['PHP_SELF']?>?action=b">Menupunkt2</a>
<a href="<?php echo $_SERVER['PHP_SELF']?>?action=c">Menupunkt3</a>
usw.
Dann im Bereich, wo die entsprechende Auswahl includet werden soll:
<?php
switch ($_GET['action']) {
case a:
include "seite1.html";
break;
case b:
include "seite2.html";
break;
}
uswusf.
?>
Die Google Crawler werden das aber sicher nicht verstehen oder?!
Gruss,
andreas
hi,
Die Google Crawler werden das aber sicher nicht verstehen oder?!
so wie Yzerman es geschreiben hat, muss ja selbst php raten, was er meint.
case a:
ich kann jedenfalls die stelle nicht finden, wo er die konstante a definiert hat, und mit welchem inhalt.
gruss,
wahsaga