2017-06-19 1 views
-3

Zuerst entschuldigung, wenn mein Titel nicht so präzise ist.PHP-GET-Parameter - Stellen Sie Parameter mit und ohne Leerzeichen gleich

Ist es möglich, wenn ja, wie die Parameter "city=Los%20Angeles" und "city=LosAngeles" gleich zu machen? Ich habe Anzeigenwebsite mit der Suche nach Stadt, und Problem ist, dass die Stadtvariablen einiger Anzeigen Raum enthalten (% 20), und einige nicht. Das ist ein Problem bei der Suche nach Anzeigen, da die Suche Los Angeles keine Anzeigen mit der Stadt LosAngeles zeigt.

So 1. url braucht Anzeigen aus 1. und 2. url 1. URL zeigen https://www.mywebsite.com/city-Los%20Angeles/listings.html 2. url https://www.mywebsite.com/city-LosAngeles/listings.html

Wenn hilft, ich Smarty Template-Engine verwenden.

+0

posten Sie Ihre Suchanfrage ... –

Antwort

0

Wenn das, was ich von Ihrer Beschreibung verstehe, wahr ist, möchten Sie Leerzeichen aus dem übergebenen Parameter löschen.

Wenn ja, könnte dies für Sie arbeiten

$param_city = str_replace("%20", "", $_POST['city']); 
0

Wenn Sie es in PHP möchte nur prüfen, gehen Sie wie folgt vor: $str = $_GET['city']; echo $str . " "; echo trim($str,"Hed!"); Dies ermöglicht Ihnen, es auf die gleiche Weise in PHP zu lesen.

Oder Sie könnten es in Ihrer HTACCESS-Datei tun.

0

Der beste Weg ist, die Variablen zu standardisieren, sobald sie empfangen werden. Dies ist jedoch eine gute Vorgehensweise, da Sie potenziell gefährliche Zeichen während des Filterprozesses entfernen möchten.

So, während dies ist eine gute Wahl:

$city = str_replace('%20', '', $city); 

Wenn Sie wissen, dass Sie mit nur Umgang mit Buchstaben in Ordnung sein würde, und dass es in Ordnung Wesen Groß- und Kleinschreibung, dann vielleicht könnten Sie etwas tun:

$city = preg_replace('/[^a-z]/', '', strtolower($city)); 

Diese spätere Option würde auch bösartige Zeichen verhindern, die andere Teile Ihres Codes möglicherweise nicht gut behandeln. Unter der Annahme, dass die Rechtschreibung korrekt ist, sollte dies auch bedeuten, dass es für jede Stadt genau eine mögliche Zeichenfolge geben würde.

0

OK, ich tat es als Dom C sagte und es funktioniert, aber ich habe irgendwie vergessen, es zu posten.

Vielen Dank für Ihre Antworten.

Verwandte Themen