Maison >développement back-end >tutoriel php >Explication détaillée des étapes pour générer une URL selon les règles de routage à l'aide de la méthode U dans thinkphp

Explication détaillée des étapes pour générer une URL selon les règles de routage à l'aide de la méthode U dans thinkphp

php中世界最好的语言
php中世界最好的语言original
2018-05-18 13:52:361639parcourir

Cette fois, je vais vous apporter une explication détaillée des étapes pour générer des URL selon les règles de routage en utilisant la méthode U dans thinkphp. Quelles sont les précautions pour utiliser la méthode U. dans thinkphp pour générer des URL selon des règles de routage ? Voici quelques cas pratiques.

est la suivante :

//更改模块配置文件
'URL_ROUTER_ON'   => true, 
'URL_ROUTE_RULES'=>[]//编写路由优化

Une fois que tp a activé le routage, l'utilisation de la méthode U ne générera pas d'URL selon les règles de routage. Généralement, nous devons modifier manuellement le modèle, supprimer la méthode U et modifier manuellement le lien. Si le programme a déjà été écrit et que le routage est ajouté plus tard, il sera trop gênant de modifier le lien

Je l'ai modifié aujourd'hui parce que je m'ennuyais. Méthode U, laissez-le générer des URL selon les règles de routage, plus besoin de modifier le modèle un par un.

Ajoutez le code suivant au fichier /ThinkPHP/Common/functions.php, directement

recherchez if($suffix) dans la méthode U, ajoutez le code suivant devant, l'url généré par la méthode u est Il est généré selon les règles de routage !

if(C('URL_ROUTE_RULES')){
 foreach (C('URL_ROUTE_RULES') as $rule=>$real) {
  if(strpos($url, $real)!==false){
   $url = str_replace($real, $rule, $url);
   preg_match("/\/(\w+)\.php\/(\w+)/", $url, $match);
   if(isset($match[1]) && isset($match[2]) && $match[1][0]==$match[2][0]){
    $url = preg_replace("/\/(\w+)\.php/", '', $url);
   }elseif(strpos($url, 'index.php')!==false){
    $url = str_replace("/index.php", '', $url);
   }else{
    $url = str_replace(".php", '', $url);
   }
   preg_match_all("/(:\w+)/", $rule, $matches);
   foreach ((array)$matches[1] as $match) {
    $url = str_replace($match . '/', '', $url);
    $url = str_replace(substr($match, 1) . '/', '', $url);
   }
  } 
 } 
}
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment réinitialiser le tableau à un index numérique continu en php

Fusionner le tableau en php et le conserver. Quelles méthodes existe-t-il pour les valeurs clés ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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