Variable -> Dateiname für include()

Hi

Folgendes Problem stellt sich mir gerade:
Aus einer MySQL-Datenbank lass ich einen Teil eines Dateinamens auslesen.
Es existieren mehrere Dateien, die inkludiert werden könnten. Dann möchte
ich, dass der ausgelesene Name noch mit einem .php versehen wird. Auch kein
Problem. Aber jetzt will ich das ganze inkludieren, also:

Joa, klar das klappt nicht. Nun meine Frage:
Wie kann ich $Dateiname.php inkludieren?

Gruß,
TrekWork

P.S.: Klar, mit einer if-Abfrage aber es werden irgendwann eine Menge Dateien,
dafür kann ich nicht tausend Abfragen schreiben :smiley:

probiers dochmal so:

[quote=„comjag“]probiers dochmal so:

include("$Dateiname" . '.php');

Darauf soll mal einer kommen. o.0
Thx :wink:

echt geht :astonished: wow hätte ich nciht gedacht :smiley:

wie wärs mit <?php include($dateiname.".php"); ?> ?? DAs dürfte reichen

muss nicht die variable ausgewertet werden und nicht die endung?

doch, aber durch den punkt werden beide teile miteinander verbunden :wink:
Es geht, hab ich auch schon gemacht
MfG

[quote=„TrekWork“]include("$Dateiname.php");
Joa, klar das klappt nicht.[/quote]
Eigentlich geht es genau so. Zwischen deinem, comjags und iNaDs Snippet sollte vom Ergebnis her gar kein Unterschied bestehen. :whata:

ich hab übrigens gehört wenn man die variablen durch die punkte einbindet anstatt sie direkt in den “string” zu schreiben soll die performance etwas höher sein…
nunja fals es überhaupt stimmt ist der unterschied warscheinlich minimal, aber ich finde die Schreibweise außerhalb des strings trotzdem “sauberer” :wink:

@Scram…würde im 1. Fall nicht nach einer variable namens “$Dateiname.php” gesucht, die ja garnicht gesetzt wurde? oder ist ein . für Variablennamen tabu?

Da gibt es viele Gerüchte… eines, das jedenfalls stimmt, ist die Tatsache, dass das Verbinden mit . etwas weniger Speicher verbraucht. Außerdem ist das Verbinden mit . imho langsamer, wenn es öfters gebraucht wird… kann man so verdeutlichen:

$dir . '/tests/' . $dateiname . '.' . $phpex; -> ((($dir . '/tests/') . $dateiname) . '.') . $phpex;
PHP fängt quasi bei jedem Punkt „neu“ an. Macht aber im Allgemeinen nur so wenig Unterschied, dass es sich nicht einmal gescheit benchmarken lässt. Von daher kann das genauso gut falsch sein. :smiley:

Genau das. :wink:

ahh vielen Dank für die Aufklärung :slight_smile:

nicht wirklich…

man lege eine Variable mit namen „.“ an:

${'.'}="Super Secret Var!";

:p

@TrekWork: Schreibe die Variablen klein, das hat sich so eingebürgert :wink:

Joa, aber tabu != technisch unmöglich. Tabu trifft immer noch zu, immerhin muss man diesen Workaround benutzen und in Strings werden sie nicht interpoliert.