2012-06-09 2 views
0

웹 사이트를 처음 만들었습니다. 개인 프로젝트로 URL 단축 서비스를 만들고 싶습니다. 한 가지를 제외하고는 모든 것이 잘 될 것입니다.이것을 사용하여 PHP에서 URL의 데이터를 가져 오는 방법은? id = 77

들어오는 요청을 처리 할 수 ​​없습니다.

예 : 누군가가 www.examp.le/Dnd5Je를 입력하면 URL에서 마지막 6자를 가져 와서 데이터베이스에서 검색 할 수 있기를 원합니다.

문제는 $ _GET 배열을 사용하지 않고 URL에서? id = 77 같은 식별자를 사용하지 않고 문자를 가져 오는 방법을 알아낼 수 없다는 것입니다.

나는 길을 잃었으며 마지막 6자를 추출하는 방법에 대한 도움을주었습니다. 위의 코드는에 www.examp.le/foobar123/ 같은 URL을 다시 작성합니다

RewriteEngine On 
RewriteRule ^([^/.]+)/$ index.php?target=$1 
RewriteRule ^$ index.php 

: 감사

답변

3

를 사용할 수 있습니다 www.examp.le/index.php?target=foobar123. 그런 다음 $_GET 변수를 사용하여 $_GET['target'] 값을 읽을 수 있습니다.

+0

아파치를 사용하는 경우에만 고려하십시오. –

+0

완벽하게 작동합니다. 대단히 감사합니다 !! 나는 너에게 큰 시간을 보낸다! 그러나 URL에 마지막 "/"를 남기지 않는 방법이 있습니까? 마지막 "/"없이는 작동하지 않기 때문입니다. 다시 한 번 감사드립니다 .. 매우 도움이됩니다! – Robbie

+0

사실, 나는 그것을 알아 냈다. 위의 코드에서 마지막 "/"을 제거해야했다. 다시 감사합니다! – Robbie

1

$_SERVER['REQUEST_URI']을 사용해보세요.

1

$ _GET 배열이 채워지지 않는 이유는 www.examp.le/Dnd5Je에서받는 것이 GET 정보가없는 유효한 URL이기 때문입니다. GET 정보는 물음표 (?) 뒤에 키/값 쌍으로 표시됩니다.

달성하고자하는 것을 구현하려면 웹 서버가 URL을 "다시 작성"해야합니다. 이렇게하는 방법은 사용중인 웹 서버에 따라 다릅니다. 아파치에 대한 문서는 여기

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

0

찾을 수 있습니다 당신은 $_SERVER['REQUEST_URI']를 사용할 수 있습니다. 여기에는 슬래시 (예 : /Dnd5Je)가 포함되어 있으며 쉽게 제거 할 수 있습니다.

자세한 내용은 Manual for $_SERVER

관련 문제