2011-04-06 2 views
0

을 사용자 이름 변수로 와일드 카드 하위 도메인을 끌어하려고가 나는 코드의 기본적인 부분을 사용하고 PHP

1) 첫 번째 부분 만 가져옵니다. egName1.Name2.domain.com은 name1로 읽히고 하위 도메인의 두 번째 부분은 무시됩니다.

2) 모든 글자는 소문자로 처리해야합니다. Name1은 name1이됩니다.

하위 도메인의 두 개 (또는 그 이상) 부분을 userName 변수로 선택하고 싶습니다. (점)을 사용하여 단어 사이에 공백을 나타냅니다.

나는 벽에 머리를 부딪히며 당분간 이것을 해치려고 노력했다. 새로운 눈과 깨끗한 머리의 도움이 인정 될 것이다.

답변

0

사례를 저장할 수 없습니다. 도메인 이름은 항상 브라우저에서 소문자로 전송됩니다. 대문자와 소문자 문자 도메인 이름에 허용하는 동안, 더 의미가 케이스에 부착되지 않도록

참고 :이 RFC1035 도메인 이름에 대한 (DNS)에서이다. 즉, 같은 맞춤법으로 대소 문자가 다른 두 개의 이름이 인 경우 으로 처리됩니다.

RFC2616 (HTTP 용)은 도메인 이름 비교가 대소 문자를 구별해야한다고 명시합니다. 이름을 데이터베이스와 비교하는 등 다른 방법으로이를 처리해야합니다.

첫 번째 문제는 해결하기가 쉽습니다 :

$parts = explode (".", $_SERVER['HTTP_HOST']); 
//drop irrelevant parts (change the number if you have more than two parts in your own domain): 
$parts = array_slice($parts, 0, -2); 
$name = implode(' ', $parts); 
관련 문제