PHPで配列を使ってとても簡単にURLの簡略化してかっこよくする方法

今回はPHPでとても簡単にURLを簡略化する方法を公開したいと思います

URLはできるだけ短いほうがユーザーに覚えてもらいやすい

紹介するときにも短かったら、覚えて使ってくれる人もいるかもしれません。
アリスがサイト作りたての頃、需要がないのか意外とこういう方法が公開されておらず、いまも公開されていないのでいよいよ公開することにしました。

アリスはとある掲示板を目標に覚えてる範囲で真似して作ったのでURLの簡略化は必須だったんです。

では早速公開していきます。

http://usachannel.info/bbs/r/?no=67292&page=1

こんな風なパラメーターの渡し方になるところですが
普通にGETで受け取る時とそんなに手間は変わらず

http://usachannel.info/bbs/r/?67292/1

こんな風にすることができます。
アリスの場合実際に使用している掲示板には?を付けているのですが
今回は?は外してアクセスできるようにしました。

$str = $_SERVER[“REQUEST_URI”];

$str = explode(“=”, “$str”);

print_r($str);

$str = $_SERVER[“REQUEST_URI”];
PHPで現在アクセスされているページのURLを取得します。

$str = explode(“=”, “$str”);
文字列を分解文字で分解し、配列で返って来ます。
今回の場合は=で分割します。結果は以下のようになります。

Array ( [0] => http://usachannel.info/bbs/r/?no [1] => 67292&page [2] => 1 )

このままだと$str[1]には&pageというゴミがくっついて来ます。

なので
$no = str_replace(“&page”, “”, $str[1]);

このようにして削除しましょう。
?no=67292&page=1でいうところの
$str[1]がスレッドナンバーに当たり$str[2]がページ数となるんです。
あとはGETで受け取った時と同じように扱えばよろし

デメリットもある。

この簡略化には少しだけデメリットがあります。

$str[1]はスレッドナンバー

$str[2]はページ数といったように固定されてしまいますので

通常のGETだと

http://usachannel.info/bbs/r/?page=1&no=67292

このようにページとナンバーを逆にしてもリクエストできますが

この場合pageがスレッドナンバー1をリクエストし

noが67282ページをリクエストしているということです。

いかがだったでしょうか?このようにURLは簡単に簡略化できます。

やり方さえ理解してしまえばまだまだ長いリクエストでも、簡略化できるので是非やってみてください。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする