php workerman偽靜態改造詳解

php workerman偽靜態改造詳解

一、找到vendorworkermanworkermanWebServer.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進行判斷就行了

二、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,即訪問index.php?_=Users_login

立即學習PHP免費學習筆記(深入)”;

三、根據$_GET[‘_’],分割下劃線,判斷加載哪一個類和類的方法,就行了。比如:

$_GET['_']=isset($_GET['_'])?$_GET['_']:strcode('Index_index'); $strs=strcode($_GET['_'],'DECODE'); if(!$strs)xdie('param?error.'); $d=preg_split('/[._]/',$strs); if(count($d)<p>再加載類并運行就行了。</p><p>更多workerman知識請關注PHP中文網<a href="https://www.php.cn/workerman/" target="_blank">workerman教程</a>欄目。</p>

以上就是php

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享