Andreas: application - scope : gibts sowas in PHP ?

Beitrag lesen

Hallo!

Ich hatte noch 2 Ideen.

1. Würde ich in der DB-Tabelle 2 weitere Felder einfügen, nämlich den Dateinamen und den Timestamp.

Der Dateiname ist dann dazu gut, dass Du nicht nur einen Sprachen-Array hast, sondern für jede Seite einen, damit wäre das Problem mit den vielen unnötig geladenen Daten vom Tisch! Für eine index.php hättest Du dann eine index.lang oder so, darin steht dann der Array mit den Daten, die in der Spalte Dateiname 'index.php' enthalten.

Beim Einbinden des Arrays in der entsprechenden Funktion kannst Du Dich dann auf diesen beschränken.

So schön das beim Ausgeben der Daten ist, so doof ist das beim Eingeben. Da brachst Du dann ein Script, welches Dir die Array-Dateien erstellt, was aber mit der Dateinamen-Spalte gar nicht so schwierig sein dürfte.

Dieses Script sucht sich z.B. alle Datensätze mit 'index.php' und schreibt diese in den Sprachen_array in die Datei index.lang, usw. Du könntest natürlich auch testen, wann die index.lang zuletzt verändert wurde, udn anhand des Timestamps nur bestimmte Werte in dem Array aktualisieren, naja. Vielleicht könnte man für die Aktualisiewrung ja alles in einen Array leiteten, und das später wieder trennen... viele Möglichkeiten.
So ein Script könnte auch täglich per Cron laufen, so kannst Du sichergehen, das alle Texte wenigstens Tagesaktuell sind.

Außerdem würde ich ein Eingabeformular schreiben, welches am Ende nicht nur die Einträge in der DB vornimmt, sondern direkt den entsprechenden Array aktualisiert, oder neu schreibt, oder wie auch immer.

2. Sache die ich mir überlegt habe, man könnte ja mit mod_rewrite ein Unterverzeichnis /de/ simulieren! Du läßt alles beim alten, schreibst nur eine entsprechende Rule in die .htaccess und schwupp könntest Du in PHP mit
if(strstr($SCRIPT_URI,"/de/")) {$sprache = "DE";}

die Sprache ermitteln. Darauf greifst Du in der Funktion zurück, und schon reicht ein Aufruf wie

<? echo mehrsprachig("hallowelt"); ?>

Das hatte ich mir jetzt mal so überlegt, und das sollte ja recht performant und einfach sein!

Viele Grüße
Andreas

PS: Habe den anderen Thread erst später entdeckt ;-)