이번에는 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에서 배열을 병합하고 키 값을 유지하는 방법은 무엇입니까?위 내용은 thinkphp에서 U 메소드를 사용하여 라우팅 규칙에 따라 URL을 생성하는 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!