用原生PHP写一个像CodeIgniter的路由功能_PHP教程
前段时间写了个关于手机应用的api,一直是用的query_string这种地址,而且还是根据一个act参数来区分所有的动作,这种让开发人员看起来比较费眼。本来想改写为“?c=controller&m=method&type=3&id=1” 这种形式,利用m参数来载入文件并进行实例化,后来看了sina weibo api 是对地址进行了路由。也决定跟风对地址路由。本来CI框架自己自带路由效果,但是因为考虑是写api,想写的比较纯粹一点。
支持默认控制器(index)和方法(index):
index.php index.php/controller index.php/controller/method index.php/controller/method/prarme1/value1 index.php/controller/method/param1/value1/param2/value2.....
<?php define('MODULE_DIR', './classes/'); $APP_PATH= str_replace($_SERVER['DOCUMENT_ROOT'], '', __FILE__); $SE_STRING=str_replace($APP_PATH, '', $_SERVER['REQUEST_URI']); //计算出index.php后面的字段 index.php/controller/methon/id/3 $SE_STRING=trim($SE_STRING,'/'); //echo $SE_STRING.'<br>'; //这里需要对$SE_STRING进行过滤处理。 $ary_url=array( 'controller'=>'index', 'method'=>'index', 'pramers'=>array() ); //var_dump($ary_url); $ary_se=explode('/', $SE_STRING); $se_count=count($ary_se); //路由控制 if($se_count==1 and $ary_se[0]!='' ){ $ary_url['controller']=$ary_se[0]; }else if($se_count>1){//计算后面的参数,key-value $ary_url['controller']=$ary_se[0]; $ary_url['method']=$ary_se[1]; if($se_count>2 and $se_count%2!=0){ //没有形成key-value形式 die('参数错误'); }else{ for($i=2;$i < $se_count;$i=$i+2){ $ary_kv_hash=array(strtolower($ary_se[$i])=>$ary_se[$i+1]); $ary_url[pramers]=array_merge($ary_url[pramers],$ary_kv_hash); } } } $module_name=$ary_url['controller']; $module_file=MODULE_DIR.$module_name.'.class.php'; //echo $module_file; $method_name=$ary_url['method']; if(file_exists($module_file)){ include($module_file); $obj_module=new $module_name(); //实例化模块m if(!method_exists($obj_module, $method_name)){ die('方法不存在'); }else{ if(is_callable(array($obj_module, $method_name))){ //该方法是否能被调用 //var_dump($ary_url[pramers]); $get_return=$obj_module->$method_name($ary_url[pramers]); //执行a方法,并把key-value参数的数组传过去 if(!is_null($get_return)){ //返回值不为空 var_dump($get_return); } }else{ die('该方法不能被调用'); } } } else { die('模块文件不存在'); } ?>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara melaksanakan middleware tersuai dalam CodeIgniter Pengenalan: Dalam pembangunan web moden, middleware memainkan peranan penting dalam aplikasi. Ia boleh digunakan untuk melaksanakan beberapa logik pemprosesan yang dikongsi sebelum atau selepas permintaan sampai kepada pengawal. CodeIgniter, sebagai rangka kerja PHP yang popular, juga menyokong penggunaan middleware. Artikel ini akan memperkenalkan cara untuk melaksanakan perisian tengah tersuai dalam CodeIgniter dan memberikan contoh kod mudah. Gambaran keseluruhan Middleware: Middleware ialah sejenis permintaan

Cara melaksanakan penghalaan API dalam rangka kerja Slim Slim ialah rangka kerja mikro PHP ringan yang menyediakan cara mudah dan fleksibel untuk membina aplikasi web. Salah satu ciri utama ialah pelaksanaan penghalaan API, membolehkan kami memetakan permintaan yang berbeza kepada pengendali yang sepadan. Artikel ini akan memperkenalkan cara melaksanakan penghalaan API dalam rangka kerja Slim dan memberikan beberapa contoh kod. Pertama, kita perlu memasang rangka kerja Slim. Versi terbaru Slim boleh dipasang melalui Komposer. Buka terminal dan

CodeIgniter Middleware: Mempercepatkan Responsif Aplikasi dan Gambaran Keseluruhan Pemberian Halaman: Memandangkan aplikasi web terus berkembang dalam kerumitan dan interaktiviti, pembangun perlu menggunakan penyelesaian yang lebih cekap dan berskala untuk meningkatkan prestasi dan responsif aplikasi. CodeIgniter (CI) ialah rangka kerja berasaskan PHP ringan yang menyediakan banyak ciri berguna, salah satunya ialah perisian tengah. Middleware ialah satu siri tugasan yang dilakukan sebelum atau selepas permintaan sampai kepada pengawal. Artikel ini akan memperkenalkan cara menggunakan

Apache Camel ialah rangka kerja penyepaduan berasaskan Bas Perkhidmatan Perusahaan (ESB) yang mudah menyepadukan aplikasi, perkhidmatan dan sumber data yang berbeza untuk mengautomasikan proses perniagaan yang kompleks. ApacheCamel menggunakan konfigurasi berasaskan laluan untuk mentakrif dan mengurus proses penyepaduan dengan mudah. Ciri utama ApacheCamel termasuk: Fleksibiliti: ApacheCamel boleh disepadukan dengan mudah dengan pelbagai aplikasi, perkhidmatan dan sumber data. Ia menyokong pelbagai protokol, termasuk HTTP, JMS, SOAP, FTP, dll. Kecekapan: ApacheCamel sangat cekap, ia boleh mengendalikan sejumlah besar mesej. Ia menggunakan mekanisme pemesejan tak segerak, yang meningkatkan prestasi. Boleh dikembangkan

Pengenalan kepada kaedah menggunakan pembina pertanyaan pangkalan data (QueryBuilder) dalam rangka kerja CodeIgniter: CodeIgniter ialah rangka kerja PHP ringan yang menyediakan banyak alat dan perpustakaan yang berkuasa untuk memudahkan pembangun dalam pembangunan aplikasi web. Salah satu ciri yang paling mengagumkan ialah pembina pertanyaan pangkalan data (QueryBuilder), yang menyediakan cara ringkas dan berkuasa untuk membina dan melaksanakan pernyataan pertanyaan pangkalan data. Artikel ini akan memperkenalkan cara menggunakan Co

Bagaimana untuk menggunakan penghalaan untuk menyesuaikan kesan animasi penukaran halaman dalam projek Vue? Pengenalan: Dalam projek Vue, penghalaan adalah salah satu fungsi yang sering kami gunakan. Pertukaran antara halaman boleh dicapai melalui penghalaan, memberikan pengalaman pengguna yang baik. Untuk menjadikan penukaran halaman lebih jelas, kami boleh mencapainya dengan menyesuaikan kesan animasi. Artikel ini akan memperkenalkan cara menggunakan penghalaan untuk menyesuaikan kesan animasi penukaran halaman dalam projek Vue. Buat projek Vue Pertama, kita perlu mencipta projek Vue. Anda boleh menggunakan VueCLI untuk membina dengan cepat

Dalam aplikasi web moden, melaksanakan navigasi dan penghalaan halaman web adalah bahagian yang sangat penting. Menggunakan fungsi JavaScript untuk melaksanakan fungsi ini boleh menjadikan aplikasi web kami lebih fleksibel, berskala dan mesra pengguna. Artikel ini akan memperkenalkan cara menggunakan fungsi JavaScript untuk melaksanakan navigasi dan penghalaan halaman web serta memberikan contoh kod khusus. Melaksanakan navigasi halaman web Untuk aplikasi web, navigasi halaman web adalah bahagian yang paling kerap dikendalikan oleh pengguna. Apabila pengguna mengklik pada halaman

Kaedah pelaksanaan dan ringkasan pengalaman konfigurasi fleksibel peraturan penghalaan dalam PHP Pengenalan: Dalam pembangunan Web, peraturan penghalaan adalah bahagian yang sangat penting, yang menentukan hubungan yang sepadan antara URL dan skrip PHP tertentu. Dalam kaedah pembangunan tradisional, kami biasanya mengkonfigurasi pelbagai peraturan URL dalam fail penghalaan, dan kemudian memetakan URL ke laluan skrip yang sepadan. Walau bagaimanapun, apabila kerumitan projek meningkat dan keperluan perniagaan berubah, ia akan menjadi sangat rumit dan tidak fleksibel jika setiap URL perlu dikonfigurasikan secara manual. Jadi, bagaimana untuk melaksanakan dalam PHP
