PHP, basename, include

S

spezies5618

Guest
habe in einer mit include eingebundenen Datei drin stehen das er mir mit basename(__FILE__) den aktuellen dateinamen geben soll, nun bigt er mir aber den der includedatei, ich will aber den der Datei wo die include eingebunden ist, kenn jemand eine Möglichkeit?
 
Wenn du mir noch sagst in welchen Zusammenhang da die Rede ist, kann ich dir vielleicht helfen :p
 
wenn du includest, dann behandelt PHP die beiden Dateien als wäre es eine. Es ist also so als hättest du statt include() den Text der includeten datei direkt dort hin geschrieben... deswegen gibt er auch den Namen der Mutter Datei aus... Da ich nicht genau weiss was du machen willst kann ich dir nicht unbedingt helfen, aber kanst du nicht einfach per echo ausgeben was includet wird? Also

$in = includete-datei.php
include("$in")
echo $in;


oder du rufst die andere datei per header() auf...
 
ich will damit die navileiste in meinen Galerien automatisch erzeugen lassen.

Ich habe die php-Datei die die Galerie ist und dann bilde ich per include die Datei ein die Die Navileiste erzeugt.

Dazu bekommt er die Zahl 1 als variable und erstellt dann eine Variable die ein dateiname ist, und prüft ob dieser dateiname existiert in dem Verzeichniss. Ist dies der Fall soll er prüfen ob der erzeugte Dateiname gleich der aktuelle Dateiname ist und dann halt die Nummer der galerie ausgeben, aber ohne Link. Wenn dies nicht der Fall ist macht er halt einen Link darum. Dann Erhöht er die variable 1 um eins und erzeugt wieder dateinamen und prüft existenz und dann ob aktuelle datei gleich erzeugtem Namen. Und dies ganze dann noch 38 mal.

Am ende hab ich dann meine Navileiste wo nur eine Zahl nicht als Link ist.

Ist Praktisch bei updates, wenn man nicht mehr 29 Dateien im extremfall ändern muß, sondern alles automatisch abläuft und man nhalt nur noch eine Datei hochladen muß er un dann den rest macht.
 
hmm... beim besten willen ich verstehe nicht was genau du machen willst... Kannst du nochmal versuchen es ausführlicher zu beschreiben?
 
O.K. nochmal

<?php
$aufl = "1024x768";
$navinummer = "1";


$navidateicheck = "trek" . $aufl . "_" . $navinummer . ".php";

if(file_exists($navidateicheck)){
if($navidateicheck == basename(__FILE__))
echo "<td class=navi width=40>#" . $navinummer . "</td>";
else
echo "<td class=navi width=40><a href=" . $navidateicheck . ">#" . $navinummer . "</a></td>";
}
?>
das Ding ist in eine andere Datei eingebunden. Und wenn ich nun auf basename(__FILE__) prüfe liefert er mir den Namen der include-Datei, jedoch soll es der Name sein der Datei wo eingebunden ist.


nun klarer?
 
Den Unterschied zwischen include und require hab ich zwar noch nie so richtig kapiert, aber laut Lehrbuch wird bei include der Quelltext ausgeführt und die ausgabe in die übergeordnete Datei eingebunden. Bei require dagegen wird der Quelltext eingebunden und dann erst mit der übergeordneten Datei zusammen ausgeführt. Also so wie ich das verstehe:
include = ausführen, einbinden
require = einbinden, ausführen

theoretisch, wie gesagt. Ich kann machen was ich will, bei mir funktioniert's immer :D

Was ich damit sagen will:
versuch mal statt include, require
 
Wenns gar net anders geht, dann mache doch einfach in jede Datei die includet wird einfach den Filenamen rein
$filename=DEINE_DATEI.
Dann steht der dir im Script zur Verfügung und du brauchst die basname Abfrage nicht. Geht das nicht?
 
es klappt, perfekt, danke., wieder ein problem weniger, aber nächste kommt bestimmt.
 
Zurück
Oben