PHP の疑似静的は主に、渡されたパラメータ名を隠すために使用されます 疑似静的な実装ソリューションについて言えば、「単純です。Apache の書き換えルールを設定するだけです」と喜んで答えられますか
でも、どうでしょうか。この状況に気づきましたか? 最近、多くの新しい機能が追加されており、最初の 2 日間は、運用と保守の学生が積極的に協力してくれました。 2日間、運営と保守の学生は喜んで協力してくれました。どうして一度に全部やって、頭が鈍くてバカなので毎日迷惑をかけないのですか?しかし、これからオンラインに移行しようとしており、運用保守のクラスメートに熱心に質問し、プログラマの世界で最も恥知らずな言葉を言わなければなりません。「これが最後の変更です」と後で変更しなければなりません。ねえ、あなたの性格、それはきれいな一掃です。 。 。
このようなお悩みをお持ちの方は、今後二度と運用保守を依頼することがなくなり、安心してご利用いただけるよう、以下の記事を必ずお読みください。 。 。
PHP で擬似静的を実装する方法は何通りありますか?個人的な意見と統計では、4 つの方法があります
1. Apache の URL 書き換えルールを使用します。ここでは、学生が作成した簡単な設定のみを示します
。 /test.htmlindex.php?controller=index&action=test [L]
これで、この段落を解析して実際のアドレスを割り当てることができることを理解したはずです
header("HTTP/1.1 200 OK"); //这里一定要有,不然状态就是404 $reqUrl = $_SERVER['REQUEST_URI']; // 请求地址 /** * 从URL中解析参数 */ function parseUrlParams($queryUrl) { $arr = explode('?', $queryUrl); parse_str($arr[1], $param); if($param) { foreach($param as $key => $value) { $_GET[$key] = $value; } } } parseUrlParams($reqUrl); // url解析参数 //然后你就可以使用 $reqUrl 根据自己的规则匹配不同的实际请求地址 if(preg_match('#^/test.html#is', $reqUrl, $matches)) { include('index.php'); die(); }
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule がリクエストされたときの意味です。ファイルまたはディレクトリが見つかりません。代わりにルート ディレクトリで「index.php」を使用すると、「index.php」内の関連パラメータを取得して、実際のリクエスト アドレスに解析できます
/** * 获取当前请求的URI地址 *@param void *@author painsOnline *@return string URI */ function getReqUri() { return trim($_SERVER["REQUEST_URI"]); } $reqUri = getReqUri(); if(preg_match('/^\/test.html/isU', $reqUri)) {//解析请求地址 include 'test.php'; exit(); }
<?php //利用server变量 取得PATH_INFO信息 该例中为 /1,100,8630.html 也就是执行脚本名后面的部分 if(@$path_info =$_SERVER["PATH_INFO"]){ //正则匹配一下参数 if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){ $gid =intval($arr_path[1]); //取得值 1 $sid =intval($arr_path[2]); //取得值100 $softid =intval($arr_path[3]); //取得值8630 }else die("Path:Error!"); //相当于soft.php?gid=1&sid=100&softid=8630 }else die('Path:Nothing!'); //就是这么简单了。~) ?>
以上がPHP で擬似静的を実装するいくつかの方法のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。