2016-09-19 1 views
1

그래서 저는 PHP 응용 프로그램을 만들고 현재 url을 검사하고 있습니다.php-url split up 빈 0 색인을 생성합니다.

가 나는 URL을 폭발 때, 나는이

$url = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
$segments = explode('/', rtrim($url, '/')); 

하지만 경우처럼 그것을 할 루트

php -S localhost:8080 -t public/ 

로 공개 디렉토리에, PHP에서 개발 서버에서 빌드 실행하고 예를 들어 URL을 입력하십시오 :

localhost:8080/index/test 

$ 세그먼트의 내용은 다음과 같습니다 :

echo $segments[0]; // empty, 
echo $segments[1]; // index 
echo $segments[2]; // test 

왜 첫 번째 색인은 항상 비어 있습니까?

unset($segments[0]); 

은 문제를 해결하지만 왜 그게 occours인지 알고 싶습니다.

+0

이'위해서 var_dump ($ 세그먼트)를보십시오;'. –

+1

아마'/'로 시작할까요? 그렇다면 rtrim – sidyll

+0

대신 고정을 사용하십시오! O : – user3149569

답변

1

URL이 /으로 시작하는 경우 해당 문자로 폭발하면 처음에 빈 항목이 만들어집니다 (첫 번째 구분 기호 앞에는 아무것도 없습니다). 양쪽 트림 대신 trim()를 사용 :이 경우, 당신은 이미 rtrim()과 끝 부분에 /을 트리밍하고 있기 때문에, 간단한 수정 될 것입니다

$segments = explode('/', trim($url, '/')); 
관련 문제