ホームページ  >  記事  >  PHPフレームワーク  >  PHP workmanの擬似静的変換の詳細説明

PHP workmanの擬似静的変換の詳細説明

尚
転載
2020-01-03 16:27:372970ブラウズ

PHP workmanの擬似静的変換の詳細説明

1. \vendor\workerman\workerman\WebServer.php の 176 行目を見つけて、以下の内容に変更し、html 拡張子ファイルが存在しないとの判定を強化します

        if (in_array($workerman_file_extension,['php','html']) && !is_file($workerman_file)) {
            $workerman_file = "{$workerman_root_dir}/index.php";
            $workerman_file_extension = 'php';
            if (!is_file($workerman_file)) {
                $workerman_file           = "{$workerman_root_dir}/index.html";
                $workerman_file_extension = 'html';
            }
        }

これ以降、拡張子htmlのファイルにアクセスした場合、そのファイルが存在しない限り自動的にindex.phpにリダイレクトされ、index.phpで判断されます

# 2.index.phpの修正、ページを出力する前に以下の判定を追加します。

//重定向判断
$uri=$_SERVER['REQUEST_URI'];
$ext=strtolower(substr($uri,-4,4));
if(is_cli()&&$ext=='html'){
  $_GET['_']=substr($uri,1,strlen($uri)-5);
}

たとえば、アクセスするアドレスはhttp://c.com/Users_login.html、つまりアクセスインデックスです。 .php?_=Users_login

3. $_GET['_'] に従って、アンダースコアを区切って、どのクラスとクラス メソッドをロードするかを決定します。例:

$_GET['_']=isset($_GET['_'])?$_GET['_']:strcode('Index_index');
$strs=strcode($_GET['_'],'DECODE');
if(!$strs)xdie('param error.');
$d=preg_split('/[\.\_]/',$strs);
if(count($d)<2)xdie(&#39;error:param&#39;);
  
$class=$d[0].&#39;Action&#39;;
$action=$d[1];

クラスをロードして実行するだけです。

ワーカーマンの詳細については、PHP 中国語 Web サイトの

ワーカーマン チュートリアル 列に注目してください。

以上がPHP workmanの擬似静的変換の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。