Dateien öffnen, die in einer txt-Datei stehen
Michael
- php
Guten Tag,
Ich will eine "flexible" php Seite machen, die verschiedene Einträge aus verschiedenen txt-Dateien herausholt.
Dazu benutze ich den "Befehl": file()
z.B:
$namen_d=file("txt/namen.txt");
Das klappt auch soweit, nur möchte ich, dass es jetzt auch alle Dateien öffnet, die zu den Einträgen in namen.txt gehören.
z.B:
In namen.txt steht in der 1.Zeile "Anton" und in der 2.Zeile "Bert".
Nun will ich, dass es Anton.txt und Bert.txt öffnet, da ich den Inhalt der beiden Dateien nachher weiter verarbeiten möchte.
So ähnlich müsste es ja eigentlich aussehen, aber es geht nicht:
<?php
foreach ($namen_d as $element) {
$element = trim($element);
$a='"';
"${$element}_d"=file("txt/{$element}");
}
?>
Es ist vielleicht ein bisschen kompliziert erklärt, aber ich würde mich über eine Antwort freuen.
Danke
Anton
Guten Tag,
Hi
<?php
foreach ($namen_d as $element) {
$element = trim($element);
$a='"';
"${$element}_d"=file("txt/{$element}");
}
?>
so sollte es gehen:
"${$element}_d"=file("txt/$element");
Gruß
Maresa
Ich habs so probiert:
foreach ($namen_d as $element) {
$element = trim($element);
$txt = "$element.txt";
"${$element}_d"=file("txt/$txt");
klappt nicht
Grüße Michael
hi,
In namen.txt steht in der 1.Zeile "Anton" und in der 2.Zeile "Bert".
Nun will ich, dass es Anton.txt und Bert.txt öffnet, da ich den Inhalt der beiden Dateien nachher weiter verarbeiten möchte.
Dann müsstest du also, nach dem Trimmen, an "Anton" erst mal das Suffix ".txt" dranhängen - passiert in deinem Code aber nirgends.
gruß,
wahsaga
echo $begrüßung;
foreach ($namen_d as $element) {
$element = trim($element);
$a='"';
Ich nehme an, dass das noch nicht der ganze Quelltext war, ansonsten hat die Zuweisung an $a innerhalb des foreach keinen gesteigerten Wert.
"${$element}_d"=file("txt/{$element}");
}
Hier setzt du einen String zusammen, dem du etwas zuweist. Was natürlich einen Syntax-Fehler hervorruft, da man Strings nichts zuweisen kann. Was du eigentlich wolltest ist eine Variable zu erstellen, deren Name sich aus dem Inhalt von $element und einem '_d' ergibt: ${$element . '_d'} = ...
Innerhalb "txt/{$element}" kannst du die geschweiften Klammern weglassen. Sie schaden zwar nicht, aber sie bringen in dem Fall auch nichts.
Vermutlich ist auch das Verwenden von variablen Variablennamen nicht notwendig, und es wird sich sicherlich eine bessere Lösung für deine eigentliche Aufgabe finden lassen.
Der Name der Variablen kommt von außerhalb. Du weißt während du das Script erstellst nicht, was zur Laufzeit für Variablennamen vorhanden sein werden. Du musst also immer prüfen, ob die Variable vorhanden ist, bevor du damit was anstellen kannst. Genauso gut kannst du auch prüfen, ob ein Array einen bestimmten Wert oder Schlüssel enthält.
echo "$verabschiedung $name";