Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> PHP&MySQL -> htaccessのRewriteでGETパラメータを無理やり引き継ぐPHPコード

htaccessのRewriteでGETパラメータを無理やり引き継ぐPHPコード


.htaccessで、Rewrite Ruleを使っている場合、通常は以下のようにhtaccess内に記述する事で、「?以降」の文字列を「$_GET」に代入させる事ができるようになります。

RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} (.*)$
RewriteRule ^/test/$ /test.php?%1


・・・でも、何らかの事情で、.htaccessをこれ以上使えないとか、いじくり回したくない場合、別の方法でGETパラメータを無理やり引き継がせる必要に迫られます。

というわけで、PHPコードでなんとかする事にしましたw

function parse_query_string($allow_list = array()){
    $req = $_SERVER["REQUEST_URI"];
    if(strpos($req, "?") !== FALSE){
        list($req, $query_strings) = explode("?", $req);
        $query_strings = explode("&", $query_strings);
        foreach($query_strings as $query_string){
            list($key, $value) = explode("=", $query_string);
            if(in_array($key, (array)$allow_list)){$_GET[$key] = urldecode($value);}
        }
    }
}


使い方:
parse_query_string(array("page", "max"));

上記の例では、$_GET["page"]、$_GET["max"]のみ、$_GETパラメータを引き継がせる事ができるようになります。

この記事の最終更新日:2019/09/02
最初に記事を書いた日:2019/09/02

この記事をシェアする

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

関連記事

Meteoric Streamについて

管理人

Windowsソフト、iPhoneアプリ、ゲーム音楽素材の「Meteoric Stream」 -> 資料室 -> PHP&MySQL -> htaccessのRewriteでGETパラメータを無理やり引き継ぐPHPコード