2011-06-29 11 views
1

誰も私は、例えばGETのURLと遊ぶのを助けることができる私はこのようなリンクを持っているGET:プレイが

?id=5&lang=1 

だから私の質問は、私はこの1つ作ることができる方法です。

?id=5,1 

私は&langを表示したくない、私が欲しいのは、&langを "カンマ"に置き換えることは誰でも助けることができることですか?

+1

なぜあなたは$ _POSTを使用しませんか?セッション?クッキー ? – Tarek

+1

@Tarek、私はリンクを使用しているので – Nickol

答えて

0
$id = $id . ',' . $lang; 
<a href="?<?php echo $id; ?>"> 

+0

@Nickolは彼/彼女がそのようなURLを(多分)解析できるようにしたいと考えていると思います –

+0

@brendan:それは爆発機能のために複製されたトンです – dynamic

3

あなたはこれを実行することができますが、それは適切な$_GET変数値の面で、非常にきれいではありません。ソリューションは、自動的にタイプが整数に値をキャスト:あなたは、内部?id=5&lang=1から?id=5,1を書き換えるmod_rewriteを使用することができます

sscanf($_GET['id'], '%d,%d', $id, $lang); 
// $id = int(5) 
// $lang = int(1) 
4

それ以外の場合、idの値は5,1になります。アプリケーションはidid以上が含まれていることを知る必要があります。その後、IDから言語を解析することができます。しかし、より多くのパラメータを導入すると、これは混乱するようになります。

:あなたはすでにあなたが指定した、あなたはカンマをもとにidフィールドを破り、本当のidとLANGフィールド

$urlPieces = explode(",", $_GET['id']); 
$id = $urlPieces[0]; 
$lang = $urlPieces[1]; 
4

まず、パラメータがPHPプログラムに到着したときにパラメータを再フォーマットするだけです。 ?id=5,1では、id'5,1'でPHP $_GETの配列を取得します。これは、explode()関数を使用して簡単に分割して、2つの値を取得することができます。

2番目の解決策は、Apache mod_rewrite機能を使用して、URL引数がPHPに到達する前に変更することです。このためには、正規表現(正規表現)を理解する必要があります。mod_rewriteはこれを作業のために使用します。もっと知るにはgoogle 'mod_rewrite'と 'regex'を使うべきです。

しかし、mod_rewriteは一般に、GET引数を完全に取り除くために使用されます。たとえば、このサイトの質問のURLには引数がありませんが、サーバーはスラッシュ間の引数をGET引数に変換します。これは、よりユーザーフレンドリーでSEOに優しいため、議論の仕方を変更するよりも、より良い慣行とみなされます。

希望に役立ちます。

1

2つの溶液を抽出することができますように、URLを構築していると仮定すると、

関連する問題