>  기사  >  백엔드 개발  >  thinkphp가 라우팅 규칙에 따라 URL을 생성하는 방법

thinkphp가 라우팅 규칙에 따라 URL을 생성하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-03-24 17:00:251811검색

이번에는 thinkphp가 라우팅 규칙에 따라 URL을 생성하는 방법을 보여드리겠습니다. 라우팅 규칙에 따라 URL을 생성할 때 thinkphp가 주의해야 할 주의사항은 무엇입니까?

아래와 같이:

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

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

/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 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

Post에서 양식 데이터를 얻을 수 없습니다.


QR 코드 이미지 강제 다운로드


PHP로 형식 파일을 작동하는 방법

위 내용은 thinkphp가 라우팅 규칙에 따라 URL을 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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