![]() Mailinglisten-Archive |
hallo Florian, Florian Mang wrote: > Kannst du mir das auch ein bisschen genauer und anf�ngerfreundlich > erkl�ren? oder hast du nen link dazu oder ein beispiel? Schau dir zuerst http://de3.php.net/manual/de/function.explode.php an. Als trennzeichen legst du sinnvollerweise das "/" fest und erh�lst als Ergebnis aus dem explode ein numeriertes Array mit allen enthaltenen Teilen der URL, die zwischen den Slashes gefunden wurden. Durch ein unbestimmt gro�es Array l�ufst du mit foreach ( $array as $key => $value ) { } durch. Ein Array betrachten kannst du am besten mit echo '<pre>'; print_r($array); echo '</pre>'; Die Keys (Schl�ssel) enthalten dann die Position im Array, also auch die Position in der URL. Lass dir in der foreach-Schleife mal mit echo die $key und $value zeilenweise ausgeben und schau, an welcher Stelle du die Sprachinformation findest. F�r diesen Key setzt du dann eine if-Bedingung ein. $urlParts = explode('/', $_SERVER['PHP_SELF']); $newUrl = 'http://'.$_SERVER['HTTP_HOST'].'/'; foreach ( $urlParts as $k => $part ) { if ( 1 == $k ) // dies w�re die Position der Sprache { $newUrl .= 'en'; } else // ansonsten die Teile der Reihe nach wieder anh�ngen { $newUrl .= $part; } // und nach jedem Teil immer einen Slash anf�gen, solange es sich nicht // um den letzten Schl�ssel im Array handelt, weil dieser Teil wahrscheinlich // auf .html oder .php endet if ( $k < (count($array)-1) ) { $newUrl .= '/'; } } Das Ganze m�sstes du ggf. f�r alle Sprachen wiederholen, weil je Sprache eine neue URL zusammengebaut werden muss. Also am besten noch eine Schleife drumherum f�r jede Sprache foreach ( $languages as $k => $v ). Siehe Niels' Vorschlag kannst du das Ganze auch noch sch�n �bersichtlich in functions zerlegen. hth, Ringo
php::bar PHP Wiki - Listenarchive