dedlfix: bestimmte Infos zwischen zwei Platzhalter Zeilenweise auslesen

Beitrag lesen

Tach!

Ich werde mir deinen Text wohl noch 10000 mal durchlesen. Vieleicht kapier ich ihn dann, bis jetzt leider nichts davon.

Das ist mir zu pauschal. Wenn du wirklich nichts verstehst, solltest du dich fragen, ob du überhaupt schon die Grundlagen PHPs kennst, oder mir bitte sagen, was konkret unverständlich war.

Erstell dir eine Funktion.

Grundlagenwissen.
function foo() { ... }

Innerhalb der Funktion gilt ein eigener Scope und es werden keine außerhalb vorhandenen Variablen überschrieben.

Zusatzinformation. Eigentlich auch Grundlagenwissen, dass PHP-Funktionen in Bezug auf Variablen ein eigener Mikrokosmos sind.

Ein Parameter der Funktion ist die jeweilige Sprache.

Funktionen können Parameter entgegennehmen. Selbst wenn du noch nie eine Funktion geschrieben hast, wirst du doch sicher schon welche angewendet haben und dabei Parameter übergeben haben.

function foo($parameter) { ... }

In der Funktion inkludierst du die zur Sprache passende Datei.

Inkludieren wirst du können, nehm ich an. Zur Sprache passend heißt, dass aus dem übergebenen Parameter der Funktion der Dateiname zur Sprachdatei gebildet wird. pfad/de.php oder pfad/en.php

$dateiname = 'pfad/' . $sprache . '.php';
include $dateiname;

Jetzt hast du ein fix und fertiges Array im Scope der Funktion rumliegen.

Kontrollausgabe mit print_r($_lang); (oder auch var_dump()).

Das musst du nur noch zurückgeben.

Funktionen können etwas zurückgeben. Auch Grundlagenwissen.

return $_lang;

Außerhalb kannst du das dann in einer Variablen ablegen.

Ebenfalls Grundlagenwissen, das Funktionsergebnis einer Variablen zuzuweisen.

$bar = foo();

Für deinen Fall muss der Funktion noch dir Sprache übergeben werden.

Die Funktion nochmal für die zweite Sprache aufrufen und das Ergebnis in einer zweiten Variable ablegen. Fertig.

Wiederholung des Funktionsaufrufs.

Und fürs Schreiben gibt es var_export().

Tipp für den nächsten Schritt. Der spart dir große Teile des händischen Erstellens des Sprachdatei-Codes.

P.S. Die Funktion muss nicht unbedingt sein. Es reicht auch, das Array einer Sprache in den globalen Raum zu laden und es dann in eine andere Variable zu kopieren, bevor das zweite inkludiert wird.

Vereinfachung des Ganzen, ist aber mit Vorsicht zu genießen, weil beim Inkludieren im globalen Scope die globalen Variablen überschrieben werden.

include 'pfad/de.php';
$lang_de = $_lang;
include 'pfad/en.php';
$lang_en = $_lang;

Kontrollausgaben zeigen dir wieder, ob alles geklappt hat.

dedlfix.