、このような他のサイトの URL をよく見かける
検索エンジンのような擬似静的実装です。
http://www.xxx.com/module/show/action/list/page/7
または
http://xx.com/module/show/action/show/id/8.shtml拡張子付き、または
http://xx.com/module/show/action/show/id/8?word=ss&age=11
今日はこのメソッドの実装を発表します。次のように最も単純なコード関数をクラスに分割します。これは、主に関数
<?php を
使用する方が便利であるためです。
/**
* フレンドリーな URL アクセスを取得
*
* @accesspublic
* @return 配列
*/
関数 getQueryString(){
$_SGETS =explode("/",substr($_SERVER['PATH_INFO'],1));
$_SLEN = カウント($_SGETS);
$_SGET = $_GET;
for($i=0;$i<$_SLEN;$i+=2){
if(!empty($_SGETS[$i]) && !empty($_SGETS[$i+1])) $_SGET[$_SGETS[$i]]=$_SGETS[$i+1];
}
$_SGET['m'] = !empty($_SGET['m']) && is_string($_SGET['m']) ? trim($_SGET['m']).'Action' : 'indexAction';
$_SGET['a'] = !empty($_SGET['a']) && is_string($_SGET['a']) ? トリム($_SGET['a']) : '実行';
$_SGET を返します。
}
/**
* リンクURLを生成
*
* @accesspublic
* @param 配列 $arr
* @戻り文字列
*/
関数 setUrl($arr){
グローバル $グローバル;
$クエリ文字列='';
if($Global['urlmode']==2){
foreach($arr as $k=> $v){
$queryString.=$k.'/'.$v.'/';
}
}
$queryString.=$Global['urlsuffix'];
$queryString を返します。
}
?>
使い方はとても簡単
<?php
$_GET= getQueryString();
?>
しかし、これだけでは十分ではありません、これを達成することしかできません
http://www.xxx.com/index.php/module/show/action/list/page/7途中に余分なindex.phpがあるので、それを削除して書き直す必要があります。これが必要な場合、たとえば画像のスタイルを設定したい場合は、
RewriteEngine がオンの
状態で .htaccess ファイルを作成します。
RewriteCond $1 !^(index.php|css|pics|主題|js|ロボット.txt)
RewriteRule ^(.*)$index.php/$1[L]
これでOKです。今すぐテストしてください
<?php
$_GET= getQueryString();
print_r($_GET);
?>