-
-
//URLを静的URLに変換 - function url_rewrite($file, $params = array (), $html = "", $rewrite = true) {
-
- if ($rewrite) { //開発段階では書き換えを行わないでください。 $url = ($file == 'index') '' : '/' if (! empty ( $params ) && is_array ( $params )) {
- $url .= '/' . implode ( '/', array_slice($params, 0 , 2));
- $param = array_slice($params , 2);
- foreach($param as $key => $value){
- $url .= '/' . urlencode ( $value ); $html )) {
- $url .= . $html; }
- } else {
- $url == '/' : '/' . if (substr ( $url, - 4 ) != '.php' && $file != 'index') {
- $url .= '.php'
- }
-
- if (! empty ( $params ) && is_array ( $params )) {
- $url .= '?' . http_build_query ( $params )
- }
- }
- return $url; 'test', array('class' => "ユーザー", 'act' => 'check', 'name' => 'tank','page'=>5 ) );echo "
";
- //$rewrite = In falseの場合は以下のように表示されます/test.php?class=User&act=check&name=tank
echo url_rewrite ( 'test.php', array ('class' => " User", 'act' => 'check', 'name' => 'tank' ) );echo " ";
- //$rewrite = trueの場合、表示は次のようになります/ test.php/ ユーザー/チェック/タンク
-
- echo url_rewrite ( 'test', array ('class' => "ユーザー", 'act' => 'check', 'name' => 'tank' ) );echo "
";
- //$rewrite = true の場合、表示は次のようになります/test/User/check/tank
echo url_rewrite ( 'test' , array ('class ' => "User", 'act' => 'check', 'name' => 'tank' ), 'html' );echo " "; //$rewrite = true の場合、表示は次のようになります /test/User/check/tank.html
- ?>
-
-
-
- コードをコピー
-
-
- "User",'act'=> 'チェック','名前 '=>'タンク'));?>">テスト
-
- 上記は動的 URL を静的 URL に変換し、次のようにページにリンクが生成されます。
テスト
この時点で直接クリックすると、tank ディレクトリを見つけることができないため、必ず 404 エラーが報告されます。
見つからないディレクトリやファイルにはphpファイルを指定する必要があります。これには、Apache、nginx、htaccess などを使用する必要があります。
-
- 三、統一された入口を指定する
-
-
RewriteCond %{REQUEST_FILENAME} !-f //ファイルが見つかりません RewriteCond %{REQUEST_FILENAME} !-d //ディレクトリが見つかりませんRewriteRule . /test3/index.php [L]
コードをコピーします
コードの説明:
ディレクトリが見つからない場合は、index.php ファイルに移動します。ファイルが見つからない場合は、index.php ファイルにも移動します。
http://localhost/test3/test.php/User/check/tank にアクセスすると、index.php に移動します。
以下の内容は http://localhost/test3/test.php/User/check/tank を書き換えて動作させます。
4、index.phpファイル
-
- $filename = $_SERVER['REQUEST_URI']; //リクエストされたURL
-
- /**リクエストされた URL、「/test3/test.php/User/check/tank」
- * test.php は移動先の php ファイルです
- * User はクラス名です
- * check はクラス内のメソッド名です
- * Tank はbbs.it-home.org
- によって Checkparameters
- * に渡されます*/
-
- preg_match("/(w+.php)/" , $filename,$match); //php ファイル名を検索します
-
- $array =explode('/',$filename); //静的 URL を分割します
-
- $key = array_keys($array,$match[0 ]) ); //ファイルに対応する添字配列を取得します ( [0] => 2 )
- $file_array = array_slice($array,0,$key[0]+1); //配列 ( [0] = >) ; [1] => test3 [2] => test.php )
- $param_array = array_slice($array,$key[0]+1); => チェック [2] => タンク )
-
- $file_path = implode('/',$file_array);
- if($array[$key[0]]){
- include_once($array[$key[0]]); //リクエスト URL に php ファイルを含めます。ここでは test.php です
- }
-
- if(class_exists($param_array[0])){ //判定チェックファイル内にクラス User がある場合 test.php
-
- $obj = new $param_array[0];
- if(method_exists($obj,$param_array[1])){ //クラス User があるかどうかを確認しますはチェックメソッドではありません
- $obj->$param_array[1]($param_array[3]); //このメソッドを呼び出すと、結果は (私の名前は Tank) になります
- }
- }
- ?>
-
Copyコード
5、test.php ファイル
class User {
- public function check($name){
- echo "My name is".$name
- }
- }
- ?>
-
-
コードをコピーします ;この時点では、http://localhost/test3/test.php/User/check/tank にアクセスしてもエラーは報告されません。
|