>백엔드 개발 >PHP 튜토리얼 >thinkphp에서 U 메소드를 사용하여 라우팅 규칙에 따라 URL을 생성하는 단계에 대한 자세한 설명

thinkphp에서 U 메소드를 사용하여 라우팅 규칙에 따라 URL을 생성하는 단계에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-05-18 13:52:361640검색

이번에는 thinkphp에서 U 메소드를 사용하여 routing 규칙을 기반으로 URL을 생성하는 단계에 대해 자세히 설명하겠습니다. thinkphp에서 U 메소드를 사용하여 생성할 때 주의해야 할 주의 사항은 무엇입니까? 라우팅 규칙을 기반으로 한 URL을 살펴보겠습니다.

아래와 같이

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

tp라우팅을 활성화한 후 U 메소드를 사용하면 라우팅 규칙에 따라 URL이 생성되지 않습니다. 일반적으로 템플릿을 수동으로 수정하고 내부의 U 메소드를 제거해야 합니다. 프로그램이 이미 작성되어 있고 나중에 라우팅을 추가한다면 링크를 수정하는 것이 너무 번거로울 것입니다. 오늘은 심심해서 라우팅 규칙에 따라 URL을 생성할 수 있도록 U 메소드를 수정했습니다. 따라서 템플릿을 하나씩 수정할 필요가 없습니다.

/ThinkPHP/Common/functions.php 파일에 다음 코드를 추가하고, 직접

U 메소드에서

if($suffix) 를 검색한 후 앞에 다음 코드를 추가하면 u 메소드로 생성된 URL이 생성됩니다. 라우팅 규칙에 따라!

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);
   }
  } 
 } 
}
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

PHP에서 배열을 연속 숫자 인덱스로 재설정하는 방법


PHP에서 배열을 병합하고 키 값을 유지하는 방법은 무엇입니까?

위 내용은 thinkphp에서 U 메소드를 사용하여 라우팅 규칙에 따라 URL을 생성하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.