Boardunity & Video Forum

Boardunity & Video Forum (https://boardunity.de/)
-   Programmierung und Datenbanken (https://boardunity.de/programmierung-datenbanken-f23.html)
-   -   PHP: URL-Parameter austauschen (https://boardunity.de/php-url-parameter-austauschen-t2725.html)

lotsch 09.01.2005 14:45

PHP: URL-Parameter austauschen
 
Hallo!

Gibt es irgendeine Möglichkeit, wie ich die URL mit sämtlichen Parametern auslesen und dann einen davon austauschen kann?

Also, konkret soll das heißen: ich möchte eine Seite mit verschiedenen Sprachversionen erstellen. Die entsprechende Sprache wird anhand eines Parameters über die URL weitergegeben, befindet sich dort aber an variabler Selle:

file.php?verschiedene=variablen&lang=de&verschiede ne=variablen

Jetzt möchte ich lang=de mit einem Klick auf lang=en ändern können, die anderen Variablen aber belassen, wie sie sind.

Vielleicht stehe ich ja auf der Leitung, aber ich komme nicht drauf, wie ich das schaffe! Ha irgend jemand einen Vorschlag?

MaMo 09.01.2005 14:51

So?
 
Hi.

PHP-Code:

<?php
// (c) 2005 by Matthias Mohr
$vars = array();
// $_GET wird überprüft, alternativ kann auch $_POST benutzt werden
// Die Standard-Variable wird gesetzt
$_GET['lang'] = 'de';
// Jedes Keyword inkl. Inhalt durchgehen
foreach ($_GET as $key => $value) {
    
// Es wird nach dem Keyword "lang" geucht und durch "en" ersetzt
    
if ($key == 'lang') {
        
$value 'en';
    }
    
// Jeden Wert zwischenspeichern
    
$vars[] = $key.'='.$value;
}
// Jeder Wert wird durch & getrennt
$query implode('&'$vars);
// An die Datei wird die neu generierte Query angehängt und es wird zu der neuen Adresse weitergeleitet
header('Location: file.php?'.$query);
?>

MfG MaMo

Fabchan 09.01.2005 18:04

Unter PHP5 kannst du statt der foreach-Schleife auch die Funktion http_build_query() benutzen:
http://de3.php.net/manual/de/functio...uild-query.php

Fall du unter PHP4 entwickelst, was ich vermute, solltest du in der Schleife statt
PHP-Code:

vars[] = $key.'='.$value

besser
PHP-Code:

vars[] = $key.'='.urlencode($value); 

schreiben, damit Sonderzeichen in den Variablen geschützt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25