URLを整理しようとしています。「.php?slug=[some+text]」で終わるファイルを見つけて「/[some+text]」に置き換える mod_rewrite があります。ただし、それでは、見た目が乱雑になることなく、URL に複数の変数を格納することはできません。
次のような URL を取る php スクリプトを作成しようとしました。
.php?slug=search/this+is+a+search/tags/php+sql/page/2
それを置き換える必要があります
array(
'search'->'this is a search',
'tags'->'php sql',
'page'->2
);
私はここまで来ました。
if(isset($_GET['slug'])&&$_GET['slug']!=''){
$url=$_GET['slug'];
$params=explode(DIRECTORY_SEPARATOR,$url);
print_r($params);
}
これは以下を返します:
Array (
[0] => search
[1] => this is a search
[2] => tags
[3] => php sql
[4] => page
[5] => 2
)
それを一番上の配列に変換するにはどうすればよいですか?これを行うより良い方法はありますか?
遊んだ後に見つけた1つの方法は次のとおりです。
if(isset($_GET['slug'])&&$_GET['slug']!=''){
$url=$_GET['slug'];
$params=explode(DIRECTORY_SEPARATOR,$url);
$out=array();
$array_size = count($params);
for($i = 0; $i < $array_size; $i+=2)
{
$key=$params[$i];
$value=$params[$i+1];
$out[$key]=$value;
}
print_r($out);
}
この種の作品。