php url伪静态弥合析
php url伪静态化解析
1、大家来说说URL映射吧
? ?一般url映射有两种方式,一种是通过mod_rewrite实现,这种网上教材很多我也不多说了。另外一种是在程序中模拟,比如类似zend Framework中的那种方式/index.php/controller/action/var1/value1/var2/value2/。这里方 式其实最主要是通过一个统一的输入接口,然后对url进行解析,最后转发到相应的controller中的module。
? ? 我这里写了两个简单函数来模拟。
? ? 第一个函数主要是进行地址解析,把类似/index.php/controller/action/var1/value1/var2/value2/的地址解析出来,一般来说要解析成三部分:controller,module,params。
<?php /** *对url路由进行简单的解析,支持对/path/to/site/index.php/module/action/parm/value * /path/to/site/index.php?/module/action/parm/value和 * /path/to/site/?/module/action/parm/value三种形式的处理 [email protected]:null [email protected]:router array */function url_router() { $path = strip_tags ( $_SERVER ['REQUEST_URI'] ); $strpos = strpos ( $path, '.php' ); if ($strpos) { $path = substr ( $path, $strpos + 4 ); } else { if (empty ( $_SERVER ['QUERY_STRING'] )) { $strpos = strpos ( $path, '?' ); if ($strpos) { $path = substr ( $path, $strpos + 1 ); } else { $path = ''; } } else { $path = $_SERVER ['QUERY_STRING']; } } //统一化$path的格式,如果$path的第一个字符为/则去掉 if ($path [0] == '/') { $path = substr ( $path, 1 ); } //解析,并且路由 if (! empty ( $path )) { $path = explode ( '/', $path ); $router ['controller'] = $path [0]; $router ['action'] = (! empty ( $path [1] )) ? $path [1] : 'index'; //print_r($path); for($i = 2; $i < sizeof ( $path ); $i = $i + 2) { $params [$path [$i]] = (isset ( $path [$i + 1] )) ? $path [$i + 1] : ''; } $router ['params'] = $params; } else { //默认路由信息 $router ['controller'] = 'index'; $router ['action'] = 'index'; $router ['params'] = array (); } return $router;}?>
这里就完成主要的url解析功能,然后是转发映射,下面这个函数实现(注意这个函数的实现是结合了我自己的架构,所以你采用的话需要相应的修改,当然你的MVC如果类似zend Framework,那应该要该的不多。)
<?phpfunction url_dispatch($router, $app_path = '/app/controllers/') { require_once (SERVER_PATH . '/libs/controller.class.php'); $controller = $router ['controller'] . 'Controller'; //echo SERVER_PATH.$app_path.$controller.'.class.php'; if (! file_exists ( SERVER_PATH . $app_path . $controller . '.class.php' )) die ( '缺少必要的类!' ); require_once (SERVER_PATH . $app_path . $controller . '.class.php'); $controller = new $controller (); $controller->_setParam ( $router ['params'] ); $controller->{$router ['action'] . 'Action'} (); return true;}?>

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



Apabila pemula SpringBoot mencipta projek, Pengawal tidak boleh diimbas dan satu siri masalah ialah 1.2.3.4.5.6 Cara lain ialah menambah @ComponentScan(basePackages={"xxx.xxx.xx","xxx.xxx" apabila. memulakan kelas perkhidmatan) .xx”}) ialah nama pakej yang layak sepenuhnya, yang boleh digunakan untuk berbilang pengawal tersuai SpringBoot Laluan pengawal tersuai SpringBoot tidak boleh diimbas dan tidak ditemui kerana kelas permulaan dan pakej Pengawal tersuai tidak berada dalam direktori yang sama. Peletakan application.java yang disyorkan secara rasmi

Cara menetapkan pembolehubah persekitaran PATH dalam sistem Linux Dalam sistem Linux, pembolehubah persekitaran PATH digunakan untuk menentukan laluan di mana sistem mencari fail boleh laku pada baris arahan. Menetapkan pembolehubah persekitaran PATH dengan betul membolehkan kami melaksanakan perintah sistem dan arahan tersuai di mana-mana lokasi. Artikel ini akan memperkenalkan cara untuk menetapkan pembolehubah persekitaran PATH dalam sistem Linux dan memberikan contoh kod terperinci. Lihat pembolehubah persekitaran PATH semasa Jalankan arahan berikut dalam terminal untuk melihat pembolehubah persekitaran PATH semasa: echo$P

Panduan Pengguna ReactRouter: Cara Melaksanakan Kawalan Penghalaan Hadapan Dengan populariti aplikasi satu halaman, penghalaan bahagian hadapan telah menjadi bahagian penting yang tidak boleh diabaikan. Sebagai perpustakaan penghalaan paling popular dalam ekosistem React, ReactRouter menyediakan fungsi yang kaya dan API yang mudah digunakan, menjadikan pelaksanaan penghalaan bahagian hadapan sangat mudah dan fleksibel. Artikel ini akan memperkenalkan cara menggunakan ReactRouter dan menyediakan beberapa contoh kod khusus. Untuk memasang ReactRouter dahulu, kita perlukan

DJI belum mengesahkan sebarang rancangan untuk memperkenalkan kamera aksi baharu lagi. Sebaliknya, nampaknya GoPro akan mendahului pesaingnya tahun ini, setelah mengusik bahawa ia akan memperkenalkan dua kamera aksi baharu pada 4 September. Untuk konteks, ini dijangka

Prakata Dalam sesetengah kes, awalan dalam pengawal perkhidmatan adalah konsisten Contohnya, awalan semua URL ialah /context-path/api/v1, dan awalan bersatu perlu ditambahkan pada beberapa URL. Penyelesaian yang boleh difikirkan adalah untuk mengubah suai laluan konteks perkhidmatan dan menambah api/v1 pada laluan konteks global boleh menyelesaikan masalah di atas, tetapi terdapat kelemahan Jika URL mempunyai beberapa awalan URL memerlukan awalan Jika ia adalah api/v2, ia tidak dapat dibezakan Jika anda tidak mahu menambah api/v1 pada beberapa sumber statik dalam perkhidmatan, ia juga tidak dapat dibezakan. Yang berikut menggunakan anotasi tersuai untuk menambahkan awalan URL tertentu secara seragam. satu,

Kaedah untuk menetapkan pembolehubah persekitaran laluan: 1. Sistem Windows, buka "System Properties", klik pilihan "Properties", klik "Advanced System Settings", dalam tetingkap "System Properties", pilih tab "Advanced", dan kemudian klik butang "Environment Variables" ", cari dan klik "Path" untuk mengedit dan menyimpan; 2. Untuk sistem Linux, buka terminal, buka fail konfigurasi bash anda, tambah "export PATH=$PATH: file path" pada penghujung fail dan simpannya; 3. Untuk sistem MacOS, operasi adalah sama seperti di atas.

"Peranan dan Kepentingan Pembolehubah Persekitaran PATH dalam Linux" Pembolehubah persekitaran PATH ialah salah satu pembolehubah persekitaran yang sangat penting dalam sistem Linux. Ia mentakrifkan direktori di mana sistem mencari program boleh laku. Dalam sistem Linux, apabila pengguna memasukkan arahan dalam terminal, sistem akan mencari satu demi satu dalam direktori yang disenaraikan dalam pembolehubah persekitaran PATH untuk melihat sama ada fail boleh laku perintah itu wujud, ia akan dilaksanakan. Jika tidak, "commandnotfound" akan digesa. Peranan pembolehubah persekitaran PATH: Dipermudahkan

Cara menetapkan pembolehubah persekitaran PATH dengan betul dalam Linux Dalam sistem pengendalian Linux, pembolehubah persekitaran ialah salah satu mekanisme penting yang digunakan untuk menyimpan maklumat konfigurasi peringkat sistem. Antaranya, pembolehubah persekitaran PATH digunakan untuk menentukan direktori di mana sistem mencari fail boleh laku. Menetapkan pembolehubah persekitaran PATH dengan betul adalah langkah utama untuk memastikan operasi normal sistem. Artikel ini akan memperkenalkan cara menetapkan pembolehubah persekitaran PATH dengan betul dalam Linux dan memberikan contoh kod khusus. 1. Semak pembolehubah persekitaran PATH semasa dan masukkan arahan berikut dalam terminal
