Rumah php教程 php手册 CodeIgniter源码阅读URI.php中

CodeIgniter源码阅读URI.php中

Jun 06, 2016 pm 07:52 PM
codeigniter Kod sumber membaca

APPPATH/config/config.php中对于url 格式的拟定。 $config['uri_protocol'] = 'AUTO'; 这个配置项目定义了你使用哪个服务器全局变量来拟定URL。 默认的设置是auto,会把下列四个方式轮询一遍。当你的链接不能工作的时候,试着用用auto外的选项。 'AUTO' Def

APPPATH/config/config.php中对于url 格式的拟定。
$config['uri_protocol']    = 'AUTO';

这个配置项目定义了你使用哪个服务器全局变量来拟定URL。
默认的设置是auto,会把下列四个方式轮询一遍。当你的链接不能工作的时候,试着用用auto外的选项。

'AUTO'            Default - auto detects
'PATH_INFO'        Uses the PATH_INFO
'QUERY_STRING'            Uses the QUERY_STRING
'REQUEST_URI'        Uses the REQUEST_URI
'ORIG_PATH_INFO'    Uses the ORIG_PATH_INFO
 
CI_URI中的几个成员变量

 $keyval = array();            //List of cached uri segments
 $uri_string;                      //Current uri string
 $segments                      //List of uri segments
 $rsegments = array()       //Re-indexed list of uri segments
Salin selepas log masuk

 

获取到的current uri string 赋值到 $uri_string ,通过function _set_uri_string($str)。

 

获取到$str有几个选项,也就是_fetch_uri_string()的业务流程部分了

一、默认$config['uri_protocol'] = 'AUTO'时,程序会一次轮询下列方式来获取URI

(1)当程序在CLI下运行时,也就是在命令行下php文件时候。ci会这么获取URI
    

private function _parse_cli_args()
        {
            $args = array_slice($_SERVER['argv'], 1);
            return $args ? '/' . implode('/', $args) : '';
        }
Salin selepas log masuk

   //$_SERVER['argv'] 包含了传递给脚本的参数 当脚本运行在CLI时候,会给出c格式的命令行参数
   截取到$_SERVER['argv']中除了第一个之外的所有参数
   

如果你在命令行中这么操作

php d:\wamp\www\CodeIgniter\index.php\start\index
Salin selepas log masuk

    _parse_cli_args() 返回一个 /index.php/start/index的字符串

  (2)默认使用REQUEST_URI来探测url时候会调用 私有函数  _detect_uri()

   (3)如果上面的两种方式都不能获取到uri那么会采用$_SERVER[‘PATH_INFO’]来获取

$path = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : @getenv('PATH_INFO');
			if (trim($path, '/') != '' && $path != "/".SELF)
			{
				$this->_set_uri_string($path);
				return;
			}
Salin selepas log masuk
 (4)如果上面三种方式都不能获取到,那么就使用$_SERVER[‘QUERY_STRING’]或者getenv[‘QUERY_STRING’]
Salin selepas log masuk
$path =  (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING');
			if (trim($path, '/') != '')
			{
				$this->_set_uri_string($path);
				return;
			}
  (5)上面四种方法都不能获取到URI,那么就要使用$_GET数组了,没招了
Salin selepas log masuk
if (is_array($_GET) && count($_GET) == 1 && trim(key($_GET), '/') != '')
			{
				$this->_set_uri_string(key($_GET));
				return;
			}
Salin selepas log masuk
二、在config.php中设定了$config['uri_protocol'] ,那么 程序会自动执行相应的操作来获取uri
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melaksanakan perisian tengah tersuai dalam CodeIgniter Bagaimana untuk melaksanakan perisian tengah tersuai dalam CodeIgniter Jul 29, 2023 am 10:53 AM

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

Amalan aplikasi Python dalam perlindungan kod sumber perisian Amalan aplikasi Python dalam perlindungan kod sumber perisian Jun 29, 2023 am 11:20 AM

Sebagai bahasa pengaturcaraan peringkat tinggi, bahasa Python mudah dipelajari, mudah dibaca dan ditulis, dan telah digunakan secara meluas dalam bidang pembangunan perisian. Walau bagaimanapun, disebabkan sifat sumber terbuka Python, kod sumber mudah diakses oleh orang lain, yang membawa beberapa cabaran kepada perlindungan kod sumber perisian. Oleh itu, dalam aplikasi praktikal, kita sering perlu mengambil beberapa kaedah untuk melindungi kod sumber Python dan memastikan keselamatannya. Dalam perlindungan kod sumber perisian, terdapat pelbagai amalan aplikasi untuk dipilih oleh Python. Di bawah adalah beberapa perkara biasa

Cara menggunakan Microsoft Reader Coach dengan Immersive Reader Cara menggunakan Microsoft Reader Coach dengan Immersive Reader Mar 09, 2024 am 09:34 AM

Dalam artikel ini, kami akan menunjukkan kepada anda cara menggunakan Microsoft Reading Coach dalam Immersive Reader pada Windows PC. Ciri panduan membaca membantu pelajar atau individu berlatih membaca dan mengembangkan kemahiran literasi mereka. Anda bermula dengan membaca petikan atau dokumen dalam aplikasi yang disokong, dan berdasarkan ini, laporan bacaan anda dijana oleh alat Jurulatih Membaca. Laporan bacaan menunjukkan ketepatan bacaan anda, masa yang anda ambil untuk membaca, bilangan perkataan yang betul setiap minit dan perkataan yang anda rasa paling mencabar semasa membaca. Anda juga akan dapat mempraktikkan perkataan, yang akan membantu mengembangkan kemahiran membaca anda secara umum. Pada masa ini, hanya Office atau Microsoft365 (termasuk OneNote untuk Web dan Word untuk Kami

Perisian tengah CodeIgniter: Mempercepatkan responsif aplikasi dan pemaparan halaman Perisian tengah CodeIgniter: Mempercepatkan responsif aplikasi dan pemaparan halaman Jul 28, 2023 pm 06:51 PM

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

Cara menggunakan pembina pertanyaan pangkalan data (Pembina Pertanyaan) dalam rangka kerja CodeIgniter Cara menggunakan pembina pertanyaan pangkalan data (Pembina Pertanyaan) dalam rangka kerja CodeIgniter Jul 28, 2023 pm 11:13 PM

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 rangka kerja CodeIgniter5 dalam php? Bagaimana untuk menggunakan rangka kerja CodeIgniter5 dalam php? Jun 01, 2023 am 11:21 AM

CodeIgniter ialah rangka kerja PHP ringan yang menggunakan seni bina MVC untuk menyokong pembangunan pesat dan memudahkan tugas biasa. CodeIgniter5 ialah versi rangka kerja terkini dan menawarkan banyak ciri dan penambahbaikan baharu. Artikel ini akan memperkenalkan cara menggunakan rangka kerja CodeIgniter5 untuk membina aplikasi web mudah. Langkah 1: Pasang CodeIgniter5 Memuat turun dan memasang CodeIgniter5 adalah sangat mudah, cuma ikut langkah berikut: Muat turun versi terkini

Pembangunan PHP: Menggunakan CodeIgniter untuk melaksanakan corak MVC dan API RESTful Pembangunan PHP: Menggunakan CodeIgniter untuk melaksanakan corak MVC dan API RESTful Jun 16, 2023 am 08:09 AM

Memandangkan aplikasi web terus berkembang, adalah penting untuk membangunkan aplikasi dengan lebih cepat dan cekap. Dan, memandangkan API RESTful digunakan secara meluas dalam aplikasi web, pembangun perlu memahami cara mencipta dan melaksanakan API RESTful. Dalam artikel ini, kita akan membincangkan cara untuk melaksanakan corak MVC dan API RESTful menggunakan rangka kerja CodeIgniter. Pengenalan kepada corak MVC MVC (Model-Vie

Laman web untuk melihat kod sumber dalam talian Laman web untuk melihat kod sumber dalam talian Jan 10, 2024 pm 03:31 PM

Anda boleh menggunakan alat pembangun penyemak imbas untuk melihat kod sumber tapak web Dalam penyemak imbas Google Chrome: 1. Buka penyemak imbas Chrome dan lawati tapak web di mana anda ingin melihat kod sumber 2. Klik kanan di mana-mana di web halaman dan pilih "Periksa" atau tekan kekunci pintasan Ctrl + Shift + I untuk membuka alat pembangun 3. Dalam bar menu atas alat pembangun, pilih tab "Elemen" 4. Lihat sahaja kod HTML dan CSS daripada laman web tersebut.

See all articles