url의 마지막 세그먼트만 가져와서 조건 분기를 하려고 했다. 예를 들어 https://test.com/users/list
에서 list
만 가져오고 싶다.
현재 url은 컨트롤러에서 $this->request->url()
로 가져오면 된다.
문자열로 받아온 url을 /
기준으로 잘라서 배열로 만들고 마지막 부분 가져오기
$urlArr = explode('/', $this->request->url());
$res = end($urlArr);
echo $res; // list
basename()
함수 사용
$res = basename($this->request->url());
echo $res; // list
basename()
은 원래 어떤 경로에 있는 파일명을 반환해주는 php 함수다.
basename(string $path, string $suffix = ""): string
첫번째 매개변수로 경로를 받고 이거는 필수다.
두번째 매개변수는 선택인데 suffix를 지정해주면 지정된 문자열을 제거하고 반환하고, 안넣어주면 그냥 다 반환한다.
예를 들어서 ...\inhalin\test.txt
에서 마지막에 있는 test.txt
라는 파일명만 가져오고 싶으면
$path = '...\inhalin\test.txt';
$name = basename($path);
echo $name; // test.txt
이렇게 경로를 넣어주면 파일명만 반환해준다.
근데 확장자명은 없애고 순수하게 파일명만 받고 싶을 수 있다. 이럴 때는 suffix에 확장자명을 지정해주면 된다.
$path = '...\inhalin\test.txt';
$name = basename($path, '.txt');
echo $name; // test
그러면 이렇게 확장자명은 제거하고 파일명만 반환되는걸 확인할 수 있다.