2010-10-10 25 views
5

Ich möchte wissen, wie ich Parameter zwischen den Seiten über die URL übergeben können, ohne Variablen hinzufügen zu müssen, zB:PHP Übergabe von Parametern über URL

mydomain.com/file.php?var1=val1&var2=val2&...varN=valN 

Ich möchte es wie folgt verwenden:

mydomain.com/file.php?val1-val2-...-valN 

ich in irgendeiner Website auch die URL in folgendem Format ist

mydomain.com/file/#### 

, die ohne chang auf eine andere Seite umleitet URL als ob das die URL zu der Datei ist.

Antwort

12

sollten Sie verwenden .htaccess

Hier ein Beispiel:

Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^([0-9-_]+)/([a-zA-Z0-9-_]+)/?$ index.php?var1=$1&var2=$2 [NC,L] 

Das bedeutet im Wesentlichen, dass, wenn die URL formatiert entsprechend den regulären Ausdrücken oben (Nummer - Slash - alphanumerische Zeichen, Bindestriche oder Unterstriche) dann sollte der Inhalt von index.php angezeigt werden, während die Datei zwei Parameter mit dem Namen var1 und var2 übergeben wird, wobei var1 den Wert der Zahl hat und der zweite den Wert von was nach dem ersten Schrägstrich hat.

Beispiel:

mysite.com/20/this_is_a_new_article/ 

würde tatsächlich bedeuten,

mysite.com?var1=20&var2=this_is_a_new_article 

Natürlich können Sie in der index.php die Werte einfach übernehmen können mit

$var1 = $_GET['var1']; 
$var2 = $_GET['var2']; 

Prost!

+0

Ich habe irgendwo gelesen, dass dies von PHP gemacht wird und ich ein Beispiel sah, aber ich kann es nicht finden, nachdem ich meinen PC geändert habe :(... deshalb möchte ich es mit PHP machen ... was ich daran erinnern, dass es die explode-Funktion verwendet ... – sikas

+1

Sie könnten es mit PHP tun, aber ich würde es nicht empfehlen. Wie auch immer, Sie können einfach $ _SERVER ['REQUEST_URI'] verwenden und das Ergebnis explodieren. Beispiel: explode ('/', $ _SERVER ['REQUEST_URI']); Dies würde ein Array zurückgeben, das Sie verwenden können. Dennoch müssen Sie htaccess verwenden, um jede URL auf die Seite umzuleiten, auf der Sie diesen Code abgelegt haben. Sie können auch http: // verwenden. ie.php.net/manual/en/function.parse-url.php – Claudiu

+0

Hey bt, wenn ich nur einen Parameter in URL statt 2 übergebe, zeigt es 404 Fehler.Was könnte die Lösung für das sein? coz irgendwann möchte ich übergeben 1 Variable manchmal 2 oder mehr was dann? –

0

Ihr drittes Beispiel ist ein Beispiel dafür, wie REST eine serverseitige Ressource identifiziert. Worüber Sie hier sprechen, klingt sehr ähnlich wie REST, was Sie wollen. Ich würde vorschlagen, hier zu beginnen (http://en.wikipedia.org/wiki/Representational_State_Transfer#RESTful_web_services).

Verwandte Themen