Include = Rückgabewert?
Torsten
- php
0 Götz0 MudGuard0 Torsten0 Christian Seiler0 Torsten0 Christian Seiler0 Götz
Hallo und einen wunderschönen, sonnigen Septembertag!
Also ich habe eben ein wenig im Archiv rumgesucht, bin aber zu keiner Lösung gekommen!
Also mein Anliegen ist folgendes:
Ich möchte auf einer HP die menueführung nicht mit Frames sondern mit Include Befehlen machen.
Also wenn ich auf einen Link klicke, soll eine andere Seite includiert (?!?) werden, als im Moment. Das klappt auch sehr gut, aber ich würde gerne Testen ob diese Datei exestiert und bei false eine andere anzeigen (baustelle). Dazu möchte ich aber nur den Include Befehl verwenden.
Also so:
include Hilfe auf
If Hilfe = false
else rufe Baustelle auf
Bitte keine komplexen Scripte.
Gut zu wissen währe ob include überhaupt true oder false zurück gibt (konnte in der Hilfe nix darüber finden, denke eher nicht)
LG aus Hamburg (sonnige 26°)
Torsten
Hallo Torsten!
include Hilfe auf
If Hilfe = false
else rufe Baustelle auf
Bitte keine komplexen Scripte.
Ich hoffe, folgendes ist Dir nicht zu komplex:
if(is_file($file))
{
// datei existiert
include($file);
}
else
{
// datei existiert nicht
include('baustelle.php');
}
Die wohl einfachste Möglichkeit ist also die Funktion is_file() daüfr zu benutzen (Lesetip: http://de.php.net/is_file).
MfG
Götz
Hi,
if(is_file($file))
include($file);
else
include('baustelle.php');
Die wohl einfachste Möglichkeit ist also die Funktion is_file() daüfr zu benutzen (Lesetip: http://de.php.net/is_file).
Nur wird die _so_ nicht funktionieren, da der Include-Path berücksichtigt werden müßte.
Ich finde nichts zu einem Rückgabewert von include, nur daß es eine Warnung erzeugt, wenn das File nicht existiert.
Mit PHP kenn ich mich aber nicht genug aus, um zu wissen, ob man so eine Warnung abfangen kann.
cu,
Andreas
Hi,
if(is_file($file))
include($file);
else
include('baustelle.php');
Die wohl einfachste Möglichkeit ist also die Funktion is_file() daüfr zu benutzen (Lesetip: http://de.php.net/is_file).Nur wird die _so_ nicht funktionieren, da der Include-Path berücksichtigt werden müßte.
Warum sollte es nicht unktionieren? Es ist zwar nicht ganz das was ich haben will, aber ich habe die methode verwendet und es läuft.
-----------------------------------
$b = $_GET['b'];
$c[1] = 'start';
.
.
.
$c[8] = 'gaestebuch/gaestebuch';
if(!$b)
{
$b = 1;
}
$link = $c[$b].'.php';
if(!is_file($link))
{
$link = 'baustelle.php';
}
---------------------------------------
und das ist der link:
---------------------------------------
<a href="index.php?b=3" target="_self">bla</a>
---------------------------------------
Ich finde nichts zu einem Rückgabewert von include, nur daß es eine Warnung erzeugt, wenn das File nicht existiert.
Jo das hab ich auch gefunden.
Also da es normalerweise dabei steht, das der Rückgabewert true or false ist, nehm ich mal an das dies bei Include nicht der Fall ist.
Danke für Eure Hilfe
LG Torsten
Hallo Andreas,
Nur wird die _so_ nicht funktionieren, da der Include-Path berücksichtigt werden müßte.
Ja.
Ich finde nichts zu einem Rückgabewert von include,
Falls in der eingebundenen Datei selbst ein return irgendwas durchgeführt wird, wird dies zurückgegeben. Ansonsten AFAIK immer NULL, auch bei Fehler.
nur daß es eine Warnung erzeugt, wenn das File nicht existiert.
Ja.
Mit PHP kenn ich mich aber nicht genug aus, um zu wissen, ob man so eine Warnung abfangen kann.
Entweder mit set_error_handler, alternativ auch folgene Konstruktion:
----------------------------------------------------
$old_track_errors = ini_get ('track_errors');
ini_set ('track_errors', true);
$php_errormsg = null;
@include ("a.php");
if ($php_errormsg !== null)) {
@include ("baustelle.php");
}
ini_set ('track_errors', $old_track_errors);
----------------------------------------------------
Viele Grüße,
Christian
$old_track_errors = ini_get ('track_errors');
ini_set ('track_errors', true);
$php_errormsg = null;@include ("a.php");
if ($php_errormsg !== null)) {
@include ("baustelle.php");
}ini_set ('track_errors', $old_track_errors);
Jo und das ^^ ist die komplizierte Variante!
Gruß Torsten
Hallo Torsten,
Jo und das ^^ ist die komplizierte Variante!
Jedoch diejenige, die im Gegensatz zur anderen immer funktionieren wird. (wenn ich jetzt keinen Tippfehler reingebastelt habe ;-))
Viele Grüße,
Christian
Hallo Christian!
Jedoch diejenige, die im Gegensatz zur anderen immer funktionieren wird. (wenn ich jetzt keinen Tippfehler reingebastelt habe ;-))
Jaja, es ist auch immer das Selbe! *g*
Einigen wir uns auf unentschieden.
Weil: Torsten wollte was einfaches, hat er von mir bekommen.
Aber weil ich ein paar Sachen nicht berücksichtigt habe hat er von Dir nun eine wasserdichte, aber dafür ein klein wenig komplexere Lösung bekommen.
MfG
Götz