이번에는 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);
}
}
}
}
추천 도서:
Post에서 양식 데이터를 얻을 수 없습니다.QR 코드 이미지 강제 다운로드PHP로 형식 파일을 작동하는 방법위 내용은 thinkphp가 라우팅 규칙에 따라 URL을 생성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!