Maison développement back-end tutoriel php php url伪静态弥合析

php url伪静态弥合析

Jun 13, 2016 am 10:54 AM
action controller path router strpos

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&#160;protected]:null [email&#160;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;}?> 
Copier après la connexion

这里就完成主要的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;}?> 
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment résoudre le problème selon lequel SpringBoot ne peut pas analyser le contrôleur Comment résoudre le problème selon lequel SpringBoot ne peut pas analyser le contrôleur May 14, 2023 am 08:10 AM

Lorsqu'un novice SpringBoot crée un projet, le contrôleur ne peut pas être analysé et une série de problèmes sont 1.2.3.4.5.6. Une autre façon consiste à ajouter @ComponentScan(basePackages={"xxx.xxx.xx","xxx.xxx" lorsque. démarrage de la classe de service) .xx”}) est le nom complet du package, qui peut être utilisé pour plusieurs contrôleurs personnalisés SpringBoot. La route du contrôleur personnalisé SpringBoot ne peut pas être analysée et introuvable car la classe de démarrage et le package de contrôleur personnalisé. ne sont pas dans le même répertoire. Emplacement officiellement recommandé de application.java

Étapes pour définir la variable d'environnement PATH du système Linux Étapes pour définir la variable d'environnement PATH du système Linux Feb 18, 2024 pm 05:40 PM

Comment définir la variable d'environnement PATH dans les systèmes Linux Dans les systèmes Linux, la variable d'environnement PATH est utilisée pour spécifier le chemin où le système recherche les fichiers exécutables sur la ligne de commande. Définir correctement la variable d'environnement PATH nous permet d'exécuter des commandes système et des commandes personnalisées à n'importe quel endroit. Cet article explique comment définir la variable d'environnement PATH dans un système Linux et fournit des exemples de code détaillés. Afficher la variable d'environnement PATH actuelle Exécutez la commande suivante dans le terminal pour afficher la variable d'environnement PATH actuelle : echo$P.

Guide de l'utilisateur de React Router : Comment implémenter le contrôle de routage frontal Guide de l'utilisateur de React Router : Comment implémenter le contrôle de routage frontal Sep 29, 2023 pm 05:45 PM

Guide de l'utilisateur de ReactRouter : Comment implémenter le contrôle du routage frontal Avec la popularité des applications monopage, le routage frontal est devenu un élément important qui ne peut être ignoré. En tant que bibliothèque de routage la plus populaire de l'écosystème React, ReactRouter fournit des fonctions riches et des API faciles à utiliser, rendant la mise en œuvre du routage frontal très simple et flexible. Cet article expliquera comment utiliser ReactRouter et fournira quelques exemples de code spécifiques. Pour installer ReactRouter en premier, nous avons besoin

DJI Osmo Action 5 Pro : la date de sortie est évoquée alors que le détaillant révèle un prix de lancement qui pourrait être inférieur à celui de la GoPro Hero 13 Black DJI Osmo Action 5 Pro : la date de sortie est évoquée alors que le détaillant révèle un prix de lancement qui pourrait être inférieur à celui de la GoPro Hero 13 Black Sep 04, 2024 am 06:51 AM

DJI n'a pas encore confirmé son intention d'introduire une nouvelle caméra d'action. Au lieu de cela, il semble que GoPro devancera son rival cette année, après avoir annoncé qu'elle présenterait deux nouvelles caméras d'action le 4 septembre.

Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot Comment ajouter un préfixe d'URL à plusieurs contrôleurs SpringBoot May 12, 2023 pm 06:37 PM

Préface Dans certains cas, les préfixes du contrôleur de service sont cohérents. Par exemple, le préfixe de toutes les URL est /context-path/api/v1 et un préfixe unifié doit être ajouté à certaines URL. La solution envisageable consiste à modifier le chemin contextuel du service et à ajouter api/v1 au chemin contextuel. La modification du préfixe global peut résoudre le problème ci-dessus, mais il existe des inconvénients si l'URL a plusieurs préfixes, par exemple certains. Les URL nécessitent des préfixes. S'il s'agit de api/v2, il ne peut pas être distingué. Si vous ne souhaitez pas ajouter api/v1 à certaines ressources statiques du service, il ne peut pas être distingué. Ce qui suit utilise des annotations personnalisées pour ajouter uniformément certains préfixes d'URL. un,

Comment définir la variable d'environnement path Comment définir la variable d'environnement path Sep 04, 2023 am 11:53 AM

Méthode pour définir la variable d'environnement de chemin : 1. Système Windows, ouvrez "Propriétés système", cliquez sur l'option "Propriétés", cliquez sur "Paramètres système avancés", dans la fenêtre "Propriétés système", sélectionnez l'onglet "Avancé", puis cliquez sur le bouton "Variables d'environnement", recherchez et cliquez sur "Chemin" pour modifier et enregistrer ; 2. Pour les systèmes Linux, ouvrez le terminal, ouvrez votre fichier de configuration bash, ajoutez "export PATH=$PATH: chemin du fichier" à la fin de le fichier et enregistrez-le ; 3. Pour le système MacOS, l'opération est la même que ci-dessus.

Le rôle et l'importance de la variable d'environnement PATH sous Linux Le rôle et l'importance de la variable d'environnement PATH sous Linux Feb 21, 2024 pm 02:09 PM

"Le rôle et l'importance de la variable d'environnement PATH sous Linux" La variable d'environnement PATH est l'une des variables d'environnement très importantes du système Linux. Elle définit les répertoires dans lesquels le système recherche les programmes exécutables. Dans le système Linux, lorsque l'utilisateur saisit une commande dans le terminal, le système recherchera un par un dans les répertoires répertoriés dans la variable d'environnement PATH pour voir si le fichier exécutable de la commande existe. S'il est trouvé, il sera exécuté. Sinon, "commandnotfound" sera demandé. Le rôle de la variable d'environnement PATH : Simplifié

Comment définir correctement la variable d'environnement PATH sous Linux Comment définir correctement la variable d'environnement PATH sous Linux Feb 22, 2024 pm 08:57 PM

Comment définir correctement la variable d'environnement PATH sous Linux Dans le système d'exploitation Linux, les variables d'environnement sont l'un des mécanismes importants utilisés pour stocker les informations de configuration au niveau du système. Parmi elles, la variable d'environnement PATH est utilisée pour spécifier les répertoires dans lesquels le système recherche les fichiers exécutables. Définir correctement la variable d'environnement PATH est une étape clé pour garantir le fonctionnement normal du système. Cet article explique comment définir correctement la variable d'environnement PATH sous Linux et fournit des exemples de code spécifiques. 1. Vérifiez la variable d'environnement PATH actuelle et entrez la commande suivante dans le terminal

See all articles