slamdunk3 블로그에서 선정
1. 파일 형식 웹 개발을 할 때 누구나 html이나 xhtml을 사용하게 되는데, wml을 사용해야 한다는 점을 확인해보세요. 여기서는 간략하게만 언급했는데, 제 생각에는 wml이 xml과 비슷하고 형식이 매우 엄격해서 wap 페이지를 만들 때 wml을 사용해서 표시해야 합니다
. 동적 출력을 위한 PHP의 경우 이 페이지가 다른 *ml이 아니라 wml임을 나타내기 위해 헤더 메시지를 보내야 합니다.
header("Content-type: text/vnd.wap.wml; charset=" gb2312"");
?>
여기에 사용된 문자 집합은 gb2312입니다. 모바일 플랫폼에서는 문제가 없지만 China Unicom 플랫폼에서는 작동하지 않습니다. 보다 다양하게 사용하려면 UTF를 사용하는 것이 더 안전합니다. -8. 그것은
header("Content-type: text/vnd.wap.wml; charset="utf-8"");
?>
2. 인코딩
위에서 언급한 것처럼 문자 집합은 모두 utf-8을 사용해야 합니다. 이는 다국어를 수용하는 문자 집합이며, 한자는 2바이트를 차지하며, utf-8은 4바이트를 차지하므로 수용할 수 있는 양입니다. 휴대폰에 적힌 한자는 나중에 열 때 페이지 코드를 utf-8로 변환한 후 글자가 깨질 수 있으므로 댓글 작성 시 불필요한 문제를 피하기 위해 최대한 영어 댓글을 사용하세요. .. 앞으로는 이해할 수 없을 것 같습니다. editplus, ultraedit 등의 도구는 파일의 내부 코드를 변환할 수 있습니다.
3.
세계 주요 휴대폰 제조업체가 개발하는 휴대폰은 정말 적응하기 어렵습니다. 이상하고 다양한 형식을 지원할 수 있습니다. 예를 들어 일부는 16, 32, 48 코드를 지원하고 mid, wmv를 지원하며 일부는 gif, png, bmp를 완전히 지원하지 않으며 일부는 완전히 지원하지 않습니다. 이를 지원하면 휴대폰의 등급과 가격이 높아지지만, 휴대폰 개발에 종사하는 형제들에게는 휴대폰이 할 수 있는 사진, 벨소리, 기타 멀티미디어 정보를 일치시키는 것이 불가피하기 때문입니다. 이러한 매칭 프로세스를 일반적으로 휴대폰 적응이라고 합니다.
휴대폰 적응을 수행하려면 일반적으로 다음 정보가 필요합니다.
1) 휴대폰이 지원할 수 있는 벨소리 및 사진 형식, 휴대폰 모델 및 기타 정보를 자세히 설명하는 자세한 휴대폰 적응 데이터 시트.
2) 휴대폰의 UA를 정확하게 얻으려면 UA(사용자 에이전트)가 무엇이며, 이는 실제로 사용자의 휴대폰 정보입니다.
위의 내용만 적용하면 wap에 작성한 클래스가 있습니다. 개발을 통해 휴대폰 번호 및 휴대폰 UA를 획득할 수 있습니다.
/**
* 수업명 : 모바일
* 설명 : 휴대폰 정보
* 기타 : 우연히 쓴 글
*/
클래스 모바일
{
/**
* 함수명 : getPhoneNumber
* 기능: 휴대폰 번호 받기
* 입력 매개변수: 없음
* 함수 반환값 : 성공하면 반환번호, 실패하면 false 반환
* 기타 지침: 지침
*/
함수 getPhoneNumber()
{
if (isset($_SERVER['HTTP_X_NETWORK_INFO']))
{
$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
$getstr1을 반환합니다.
}
elseif(isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
{
$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
$getstr2를 반환합니다.
}
elseif(isset($_SERVER['HTTP_X_UP_SUBNO']))
{
$str3 = $_SERVER['HTTP_X_UP_SUBNO'];
$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);
$getstr3을 반환합니다.
}
elseif(isset($_SERVER['DEVICEID']))
{
$_SERVER['DEVICEID']를 반환합니다.
}
또 다른
{
거짓을 반환합니다.
}
}
/**
* 함수명 : getHttpHeader
* 기능: 헤더 정보 가져오기
* 입력 매개변수: 없음
* 함수 반환값 : 성공하면 반환번호, 실패하면 false 반환
* 기타 지침: 지침
*/
함수 getHttpHeader()
{
$str = '';
foreach($_SERVER, $key=>$val)
{
$gstr = str_replace("&","&",$val);
$str.= "$key -> ".$gstr."rn";
}
$str을 반환합니다.
}
/**
* 함수명 : getUA
* 기능: UA 가져오기
* 입력 매개변수: 없음
* 함수 반환값 : 성공하면 반환번호, 실패하면 false 반환
* 기타 지침: 지침
*/
함수 getUA()
{
if (isset($_SERVER['HTTP_USER_AGENT']))
{
$_SERVER['HTTP_USER_AGENT']를 반환합니다.
}
또 다른
{
거짓을 반환합니다.
}
}
/**
* 함수명 : getPhoneType
* 기능: 휴대폰 유형 확인
* 입력 매개변수: 없음
* 함수 반환 값: 성공하면 문자열, 실패하면 false
* 기타 지침: 지침
*/
함수 getPhoneType()
{
$ua = $this->getUA();
if($ua!=false)
{
$str = 폭발(' ',$ua);
$str[0]을 반환합니다.
}
또 다른
{
거짓을 반환합니다.
}
}
/**
* 기능명 : isOpera
* 기능 : 오페라인지 판단
* 입력 매개변수: 없음 www.knowsky.com
* 함수 반환 값: 성공하면 문자열, 실패하면 false
* 기타 지침: 지침
*/
함수 isOpera()
{
$uainfo = $this->getUA();
if (preg_match('/.*Opera.*/i',$uainfo))
{
참을 반환합니다.
}
또 다른
{
거짓을 반환합니다.
}
}
/**
* 기능명 : isM3gate
* 기능: m3gate인지 확인
* 입력 매개변수: 없음
* 함수 반환 값: 성공하면 문자열, 실패하면 false
* 기타 지침: 지침
*/
함수 isM3gate()
{
$uainfo = $this->getUA();
if (preg_match('/M3Gate/i',$uainfo))
{
참을 반환합니다.
}
또 다른
{
거짓을 반환합니다.
}
}
/**
* 함수명 : getHttpAccept
* 기능: HA 얻기
* 입력 매개변수: 없음
* 함수 반환 값: 성공하면 문자열, 실패하면 false
* 기타 지침: 지침
*/
함수 getHttpAccept()
{
if (isset($_SERVER['HTTP_ACCEPT']))
{
$_SERVER['HTTP_ACCEPT']를 반환합니다.
}
또 다른
{
거짓을 반환합니다.
}
}
/**
* 함수명 : getIP
* 기능: 휴대폰 IP 얻기
* 입력 매개변수: 없음
* 함수 반환 값: 문자열이 성공적으로 반환되었습니다.
* 기타 지침: 지침
*/
함수 getIP()
{
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
if (($ip_ != "") && ($ip_ != "알 수 없음"))
{
$ip=$ip_;
}
$ip를 반환합니다.
}
}
?>
4. 페이지 디자인
wap 페이지는 매우 간단합니다. wap1.0에서는 테이블처럼 지저분한 것이 없습니다. 카드라는 태그에 작성됩니다. .세그먼테이션에 사용할 수 있습니다
.5. 시뮬레이터
wap 개발을 위해서는 다양한 시뮬레이터를 사용하는 것이 불가피합니다. 테스트에는 사용하지 않는 것이 가장 좋습니다. 페이지에 오류가 있어도 무시할 수 있을 정도로 호환성이 좋습니다. 테스트는 브라우저를 사용하여 웹 페이지를 테스트하는 것과 동일합니다. URL만 입력하면 됩니다.
6. 참고사항
1) 특히 DTD를 정의할 때공백
은,
에코 "";
?>
예
를 따르지 마세요.
) 태그가 쌍을 이루지 않으면 오류 메시지가 표시됩니다. 주의만 기울이면 쉽게 수정할 수 있습니다.