Maison >cadre php >Workerman >Explication détaillée de la transformation pseudo-statique de PHP Workerman

Explication détaillée de la transformation pseudo-statique de PHP Workerman

尚
avant
2020-01-03 16:27:373006parcourir

Explication détaillée de la transformation pseudo-statique de PHP Workerman

1. Recherchez la ligne 176 de supplierworkermanworkermanWebServer.php, remplacez-la par le contenu suivant et ajoutez le jugement selon lequel le fichier d'extension html n'existe pas

        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';
            }
        }

Dans celui-ci. De cette façon, tant que vous accédez à l'extension Un fichier nommé html, et ce fichier n'existe pas, sera automatiquement redirigé vers index.php, puis portera un jugement dans index.php

2. Modification d'index.php , avant de sortir la page, ajoutez le jugement suivant :

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

Par exemple, l'adresse que j'ai visitée est http://c.com/Users_login.html, c'est-à-dire accéder à index.php?_=Users_login

3. Selon $_GET[ '_'], séparez les traits de soulignement et déterminez quelle classe et quelle méthode de classe charger. Par exemple :

$_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];

Chargez simplement la classe et exécutez-la.

Pour plus de connaissances sur Workerman, veuillez prêter attention à la colonne Tutoriel Workerman sur le site Web PHP chinois.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer