2017-06-19 1 views
-3

まず、タイトルがあまり正確でない場合は、申し訳ありません。PHP GETパラメータ - 空白を含むパラメータと空でないパラメータを同じにする

パラメータ「city=Los%20Angeles」と「city=LosAngeles」を同じにすることは可能ですか?都市別の検索で広告を表示するウェブサイトがあり、一部の広告の都市変数にスペース(%20)が含まれていて、一部の都市変数にスペースが含まれていないという問題があります。それは検索のために広告を検索するときの問題ですロサンゼルスはLosAngeles市に広告を表示しません。

だから、第一のURLが助け場合、私はSmartyのテンプレートエンジンを使用しhttps://www.mywebsite.com/city-Los%20Angeles/listings.html 第二URL https://www.mywebsite.com/city-LosAngeles/listings.html

1番目と2番目のURL 第一のURLから広告を表示する必要があります。

+0

検索のクエリを投稿する... –

答えて

0

あなたの説明からわかっていることが真実であれば、渡されたパラメータから空白文字を削除する必要があります。もしそうなら、あなたがPHPでそれを確認したい場合

、これはあなた

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

のために働く可能性があるだけで、次の操作を行います。 $str = $_GET['city']; echo $str . " "; echo trim($str,"Hed!"); これは、あなたがそれをPHPで同じように読むことができます。

または、HTACCESSファイルで実行できます。

0

変数が受信されると、変数を標準化することをお勧めします。これは、フィルタリング処理中に潜在的に危険な文字を削除したいので、とにかく、良い習慣です。

ので、これは良い選択肢である間:

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

あなたはのみの取り扱いと文字で罰金になること、そしてそれは、おそらくあなたが何かをのように行うことができ細かいビーイングの大文字小文字を区別しないということが分かっている場合:

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

この後のオプションは、コードの他の部分がうまく処理できない悪意のある文字も防ぎます。また、スペルが正しいと仮定すると、それはそれぞれの都市に対して正確に1つの可能な文字列が存在することを意味するはずです。

0

OK、私はDom Cと言っていましたが、うまくいっていますが、どういうわけか投稿して忘れました。

ありがとうございました。

関連する問題