久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区

以文本方式查看主題

-  曙海教育集團論壇  (http://www.rfoamep.cn/bbs/index.asp)
--  WAP平臺開發  (http://www.rfoamep.cn/bbs/list.asp?boardid=50)
----  php作wap開發時遇到的問題  (http://www.rfoamep.cn/bbs/dispbbs.asp?boardid=50&id=2151)

--  作者:wangxinxin
--  發布時間:2010-12-6 11:08:34
--  php作wap開發時遇到的問題
.文件格式IT我最牛-程序員的技術討論與分享園地B#B+t B1Y(G-tRN8P
首先要遇到的問題肯定是文件格式,在作web開發時,大家都是用的html或xhtml,到了wap開發時,就得用wml了.什么是wml?大家可以去查更詳細的資料,我這里只是略微的提到.在我看來wml類似于xml,有非常嚴格的格式,在作wap頁面時,都得用wml來作為顯示.IT我最牛-程序員的技術討論與分享園地D-I6nQL9^)M

1z%K4S I \\h}9s0wml的語法非常簡單,在用php作動態輸出時,一定要發送一個頭信息,標明本頁面是wml,而不是別的什么*ml.IT我最牛-程序員的技術討論與分享園地#Xeu` b[AF L

IT我最牛-程序員的技術討論與分享園地4ch8@C$X%t3usHh6G

header("Content-type: text/vnd.wap.wml; charset=\\"gb2312\\"");
&Qq_Y vhcu0?5A!l1Ek0?>IT我最牛-程序員的技術討論與分享園地} K:E$~S4}c

IT我最牛-程序員的技術討論與分享園地 X G*h%] e.Qa&H

這里用的字符集是gb2312,在移動的平臺上是沒有任何問題的,但在聯通的平臺上就不行了,一定得用utf-8,為了更通用,還是用utf-8更安全.即IT我最牛-程序員的技術討論與分享園地9Ycuv W6p)i8Gi

IT我最牛-程序員的技術討論與分享園地ov(v h!E}y Y

header("Content-type: text/vnd.wap.wml; charset=\\"utf-8\\"");
0yR8~ I2F_:q0?>

|n3b5?}+Y:gH0

%Ih Pre\'t$RQ02.編碼IT我最牛-程序員的技術討論與分享園地"|,Rlb3_$np

IT我最牛-程序員的技術討論與分享園地2? C D/X)eiV

上面說了字符集都應采用utf-8,這是一種容納了多國語言的字符集,一個漢字是占雙字節,utf-8占了4個字節,因此其容納的信息量更大.在手機上編寫的漢字,在將頁面內碼轉成utf-8后,以后再打開就可能是一堆亂碼.因此大家在作注釋時,盡可能的用英文注釋,省得以后看不懂.像editplus,ultraedit等工具都可以轉文件內碼.IT我最牛-程序員的技術討論與分享園地_7A*Ill|Py

hv"i8}%Rp03.適配

,{F+kTW@@{0 IT我最牛-程序員的技術討論與分享園地:WXdHZvYD

世界各大手機廠商真是有病,開發出的手機千奇百怪,可以支持的格式也是五花八門.比如鈴聲,有的可以支持,16,32,48和弦,支持mid,wmv,有的不完全支持;有的支持gif,png,bmp,有的也不完全支持.這雖然是把手機的檔次和成本拉開了,但卻苦了作手機開發的兄弟們了.因為不可避免的要對手機所能支持的圖片,鈴聲等多媒體信息作出一個匹配,這個匹配的處理,我們一般叫做手機適配.IT我最牛-程序員的技術討論與分享園地1D3fctS
要作手機適配,我們一般得有如下資料.IT我最牛-程序員的技術討論與分享園地Oo*Ay?0g-\\2C

)f5s+m\\Il F)Y01)一份詳細的手機適配資料表,里面應詳細的說明手機所能支持的鈴聲,圖片格式,還得有手機型號等信息
&eFc.tgT$z%d{02)要正確的獲取手機的UA,什么是UA,就是(user agent),實際上就是用戶的手機信息.IT我最牛-程序員的技術討論與分享園地L{hUvg4n#Q-A\'H

#v-y#@ Ga0有了上面的東東我們才能做出適配.以下給出一個我寫的在wap開發中用到的類,可以用來取手機號,手機UA.IT我最牛-程序員的技術討論與分享園地7A*J^ SO

TOvo:Bi(~0 /**IT我最牛-程序員的技術討論與分享園地;E&{(T5ROQcl?3F
* 類名: mobile
sh;FMa0* 描述: 手機信息類IT我最牛-程序員的技術討論與分享園地/a(GCL5s*ou x_
* 其他: 偶然 編寫
6q+jK/e9l"a1XR%l}*j0*/
;N\'x~P:N2s0class mobileIT我最牛-程序員的技術討論與分享園地&B&fgo2y8E
{IT我最牛-程序員的技術討論與分享園地\'b\'l^H(a Pa
/**IT我最牛-程序員的技術討論與分享園地k8S7Z)y Ps
* 函數名稱: getPhoneNumberIT我最牛-程序員的技術討論與分享園地K.u$OOLJU2~
* 函數功能: 取手機號IT我最牛-程序員的技術討論與分享園地I|c:z[Aj%cX
* 輸入參數: noneIT我最牛-程序員的技術討論與分享園地 M M Q%Z-G t_\'wX
* 函數返回值: 成功返回號碼,失敗返回falseIT我最牛-程序員的技術討論與分享園地PtYmlM9@"v#P
* 其它說明: 說明IT我最牛-程序員的技術討論與分享園地.s]iBj#SQ abi
*/IT我最牛-程序員的技術討論與分享園地r){ U5W-b9n/k
function getPhoneNumber()
M#~:N;jy1S/G"CZ0{
.u W2N4w a}kX"i9r%ss{0if (isset($_SERVER[\'HTTP_X_NETWORK_INFO\']))IT我最牛-程序員的技術討論與分享園地2n5z S\\k3n)TK
{
OG8D6B7Tc0$str1 = $_SERVER[\'HTTP_X_NETWORK_INFO\'];
4E| i h j"v*^oi0$getstr1 = preg_replace(\'/(.*,)(11[d])(,.*)/i\',\'\',$str1);
\\4wQ#M,R0Return $getstr1;IT我最牛-程序員的技術討論與分享園地4mDq+y9MqYj
}IT我最牛-程序員的技術討論與分享園地6r%uSc;R"C
elseif (isset($_SERVER[\'HTTP_X_UP_CALLING_LINE_ID\']))
} b8Ew.D JrV C6xP0{
\\\'cO m4bJM0$getstr2 = $_SERVER[\'HTTP_X_UP_CALLING_LINE_ID\'];
|h^{T0Return $getstr2;
umW\\O3s$~0}
5qPm z1e*A*BW0I^0elseif (isset($_SERVER[\'HTTP_X_UP_SUBNO\']))IT我最牛-程序員的技術討論與分享園地:S2my)RY5JKq6\\V
{IT我最牛-程序員的技術討論與分享園地|#^A(}F4| _0F)w1Q
$str3 = $_SERVER[\'HTTP_X_UP_SUBNO\'];IT我最牛-程序員的技術討論與分享園地7Q6DDk7yT5|
$getstr3 = preg_replace(\'/(.*)(11[d])(.*)/i\',\'\',$str3);IT我最牛-程序員的技術討論與分享園地8{0s9gI%vN
Return $getstr3;
c4On"j6xN;m*I0}IT我最牛-程序員的技術討論與分享園地 m*[ x#\\1@ E)b c
elseif (isset($_SERVER[\'DEVICEID\']))
;_9n y7HNp^5CY{H0{
i`2Qv u fM0Return $_SERVER[\'DEVICEID\'];
5ZT!pg&rj0}IT我最牛-程序員的技術討論與分享園地0TorKL:[Z
elseIT我最牛-程序員的技術討論與分享園地P _6DbY6K(Uh
{IT我最牛-程序員的技術討論與分享園地izRw p+h&u%i)q
Return false;
z0aK @&uUt3Y+e0}IT我最牛-程序員的技術討論與分享園地9j$i w6An7G4|
}IT我最牛-程序員的技術討論與分享園地E6t(G^]F

IT我最牛-程序員的技術討論與分享園地t_ T^h @8L\'W%U T

/**IT我最牛-程序員的技術討論與分享園地L1| U Kn4J5VK
* 函數名稱: getHttpHeader
\'^I(tp S kiOv0* 函數功能: 取頭信息IT我最牛-程序員的技術討論與分享園地9Jzj,g`i_
* 輸入參數: none
bH2J ^Y/c0* 函數返回值: 成功返回號碼,失敗返回false
W2af\\ }L:Zn^x0* 其它說明: 說明
~oX?n\\1R0*/
t@Su#t:b*| Ixw0function getHttpHeader()IT我最牛-程序員的技術討論與分享園地J}2M)ucnbCK
{IT我最牛-程序員的技術討論與分享園地zb Wn0eH D6Q
$str = \'\';
2K$W[awOh*@6AS0foreach ($_SERVER as $key=>$val)IT我最牛-程序員的技術討論與分享園地2s9J\'T^H~\'t
{IT我最牛-程序員的技術討論與分享園地1_(OSAA ^2|
$gstr = str_replace("&","&",$val);IT我最牛-程序員的技術討論與分享園地\'tu)N/Z*]|
$str.= "$key -> ".$gstr."\\rIT我最牛-程序員的技術討論與分享園地umtUII/vx:u[
";IT我最牛-程序員的技術討論與分享園地]R8NQ\'c G
}
TLiV)u0Return $str;IT我最牛-程序員的技術討論與分享園地%H3iF*gT2N
}IT我最牛-程序員的技術討論與分享園地2UU#TkQ*ko

Cl2I\\|tOy)DZ0/**
)h MV+lt6uJ4iF0* 函數名稱: getUAIT我最牛-程序員的技術討論與分享園地r B u\'E!|(lsOl%v|
* 函數功能: 取UA
l\'X:s K:[?7`DB2u;]0* 輸入參數: noneIT我最牛-程序員的技術討論與分享園地zTtnw
* 函數返回值: 成功返回號碼,失敗返回falseIT我最牛-程序員的技術討論與分享園地}P8U {Zf:J*J
* 其它說明: 說明IT我最牛-程序員的技術討論與分享園地lSL1rapp
*/IT我最牛-程序員的技術討論與分享園地1KP U5S$r"P&l
function getUA()IT我最牛-程序員的技術討論與分享園地gS.zV+ex1oCS
{
H^L,G ~N6q T ~$y\'c.u0if (isset($_SERVER[\'HTTP_USER_AGENT\']))
j Ac] Bow0{
_ [}JS~3e/vW0Return $_SERVER[\'HTTP_USER_AGENT\'];
5F9K3zeAr-U*w6K i$i4h0}
(D5Wm\\H0t3Z9\\\'O.R0else
r`9V-p^"E?-V9[0{IT我最牛-程序員的技術討論與分享園地!va$y5rA0V
Return false;IT我最牛-程序員的技術討論與分享園地Mj8Ej+S0qH0s,D
}
7Pc2] Yx0}

p_1H jNK1[S0

k*GI,T(NJzN0/**
n)_Y\'X5\\ J!r0* 函數名稱: getPhoneTypeIT我最牛-程序員的技術討論與分享園地\\0TBLe6~i1u
* 函數功能: 取得手機類型
.y viJJ _0* 輸入參數: noneIT我最牛-程序員的技術討論與分享園地3Or7SXU{
* 函數返回值: 成功返回string,失敗返回falseIT我最牛-程序員的技術討論與分享園地$L)aa\'j KO
* 其它說明: 說明IT我最牛-程序員的技術討論與分享園地 fY wl;]M Q
*/IT我最牛-程序員的技術討論與分享園地-^2{+g4y\'J
function getPhoneType()IT我最牛-程序員的技術討論與分享園地 onXU0Y I
{IT我最牛-程序員的技術討論與分享園地8|x\\C N&Ep8_
$ua = $this->getUA();IT我最牛-程序員的技術討論與分享園地F&I:Vvj&D$L
if($ua!=false)
!l!O/_r8k]\'n0{IT我最牛-程序員的技術討論與分享園地DL(v~!@+D"l }gZ
$str = explode(\' \',$ua);IT我最牛-程序員的技術討論與分享園地;\\!Bc+sRg^6d
Return $str[0];IT我最牛-程序員的技術討論與分享園地sabYa]$^O:Ui9d x5L
}IT我最牛-程序員的技術討論與分享園地1PaOIw_3e
elseIT我最牛-程序員的技術討論與分享園地$O/CR2g/WV
{
[nz(Rj0Return false;
EE.},L6hIN6an0}
0}1[V;u*d`0}

!A-j!_L~b6hCm0 IT我最牛-程序員的技術討論與分享園地XF MQ[ A0aLX/T0\\

/**
n4R1u*s4@7P4c3B |3M0* 函數名稱: isOperaIT我最牛-程序員的技術討論與分享園地CE3NA`!i
* 函數功能: 判斷是否是opera
D)h x/uea0* 輸入參數: none www.knowsky.com
9Vu}KRn6Ai1lz0* 函數返回值: 成功返回string,失敗返回false
TCh1w/A`S0* 其它說明: 說明
+D}(H\'g$|YC B s0*/IT我最牛-程序員的技術討論與分享園地$`7y bLf%~
function isOpera()
@9`0L1V,d?a"G0{
@^&}1G/p(e r$t\'jKm0$uainfo = $this->getUA();IT我最牛-程序員的技術討論與分享園地 Q j"U:O7a
if (preg_match(\'/.*Opera.*/i\',$uainfo))
U VD IzU w*i\'Y/TB0{IT我最牛-程序員的技術討論與分享園地SFAN|2g
Return true;IT我最牛-程序員的技術討論與分享園地FICAA
}IT我最牛-程序員的技術討論與分享園地 dw6Y9l(\\.z6bw
else
#Iv W1P H&wMY0{
H2OIPyr/lB#x0Return false;
4T-S} L+oN0}IT我最牛-程序員的技術討論與分享園地}Pcc9q \\7M$s\'R
}

;[|!h/Rm]!P)~5\\SI0 IT我最牛-程序員的技術討論與分享園地i k$e5s)t2d{6C

/**IT我最牛-程序員的技術討論與分享園地8I#{J T;N
* 函數名稱: isM3gate
/H%h?-hLG/S @Cw0* 函數功能: 判斷是否是m3gate
!{f S,Ck;KZ0?0* 輸入參數: noneIT我最牛-程序員的技術討論與分享園地qN{8Tl
* 函數返回值: 成功返回string,失敗返回falseIT我最牛-程序員的技術討論與分享園地d&Jn1Z?J3nJ7l
* 其它說明: 說明
5h(B3ho6M1K0*/IT我最牛-程序員的技術討論與分享園地?a#xt e`$i#g
function isM3gate()
W!c A&y%f#L!`;@ }0{
%y6{0Evu!k-S0$uainfo = $this->getUA();IT我最牛-程序員的技術討論與分享園地:^iIfx-TODw P
if (preg_match(\'/M3Gate/i\',$uainfo))
kQErE!DS*r8A0{
} y)WJy NU;w\'N"]0Return true;
L1z3I*QDqv%SJ0}IT我最牛-程序員的技術討論與分享園地[l@3l1M+ixi [#t


久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
欧美一级片在线观看| 国产免费一区| 视频在线观看一区二区三区| 午夜精品久久久久久不卡8050| 亚洲综合自拍偷拍| 日本不卡123| 国产风韵犹存在线视精品| 国产九色精品成人porny| 91传媒视频在线观看| 久久久综合亚洲91久久98| 亚洲一区二三| 欧美一区二区视频在线观看2020| 久久久蜜桃精品| 亚洲精品五月天| 免费欧美日韩国产三级电影| 成人午夜精品一区二区三区| 国产伦一区二区三区色一情| 亚洲欧美国产一区二区| 欧美一区二区三区啪啪| 国产精品亲子伦对白| 五月综合激情网| 成人一区二区三区| 欧美性大战久久久久| 欧美日韩一区二区三区不卡| 国产欧美一区二区三区在线看蜜臀| 亚洲午夜视频在线| 岛国精品一区二区| 欧美福利精品| 欧美一级艳片视频免费观看| 最近中文字幕一区二区三区| 精品一区二区在线播放| 国产伦精品一区二区三区免费视频 | 欧美极品另类videosde| 天天色 色综合| 91麻豆.com| 色视频一区二区| 国产精品美女久久久久久2018| 七七婷婷婷婷精品国产| 国产九色91| 91精品国产综合久久福利| 亚洲综合免费观看高清完整版| 国产传媒日韩欧美成人| 日韩电影免费观看高清完整| 欧美精品一区在线观看| 美国三级日本三级久久99| 国产精品毛片一区视频| 911精品国产一区二区在线| 一区二区视频免费在线观看| 成人福利视频网站| 欧美性淫爽ww久久久久无| 亚洲女子a中天字幕| 91在线精品一区二区| 欧美午夜影院一区| 亚洲一二三区在线观看| 狠狠色噜噜狠狠色综合久| 精品日韩一区二区三区 | 91福利视频导航| 7777精品伊人久久久大香线蕉最新版| 亚洲欧美国产毛片在线| 91在线小视频| 欧美一区永久视频免费观看| 日韩福利电影在线| 蜜桃传媒视频麻豆第一区免费观看| 日韩美女视频在线| 国内精品视频666| 色综合久久88色综合天天6| 亚洲欧美色一区| 国产精品久久久久久久天堂第1集 国产精品久久久久久久免费大片 国产精品久久久久久久久婷婷 | 精品午夜一区二区三区| 久久久综合精品| 成人国产电影网| 欧美高清你懂得| 久久丁香综合五月国产三级网站| 色综合一个色综合亚洲| 亚洲一区二区视频| 牛人盗摄一区二区三区视频| 国产精品久久久久久久久免费相片| av资源网一区| 精品久久一区二区| 北岛玲一区二区三区四区| 欧美一区二区免费视频| 国产成人av福利| 欧美岛国在线观看| 成人免费高清视频在线观看| 欧美成人一区二区三区片免费| 国产成人精品免费一区二区| 91精品国产色综合久久| 国产成人在线视频网站| 日韩一级片网址| 成人18视频日本| www激情久久| 91精品国产一区二区三区动漫 | 日韩avvvv在线播放| 一本到不卡精品视频在线观看| 午夜av一区二区| 在线视频欧美精品| 国产乱一区二区| 欧美大胆一级视频| 91在线看网站| 亚洲免费观看视频| 亚洲国产精品一区在线观看不卡| 污片在线观看一区二区| 91成人免费电影| 国产高清视频一区| 久久久久青草大香线综合精品| 91丨porny丨首页| ...xxx性欧美| 亚洲免费不卡| 国产一区二区美女| 久久久精品综合| 久久精品99久久| 婷婷开心久久网| 欧美视频在线一区二区三区| 国产超碰在线一区| 中文字幕免费不卡| 日韩偷拍一区二区| 国产一区在线观看视频| 久久精品一区二区三区av| 欧美成人在线免费观看| 免费xxxx性欧美18vr| 日韩欧美的一区二区| 国产在线一区二区三区欧美 | 亚洲人成网站在线| 樱花www成人免费视频| 国产很黄免费观看久久| 亚洲国产精品传媒在线观看| 日韩精品久久一区| 国产一区二三区| 国产精品卡一卡二卡三| 色综合色狠狠综合色| 成人免费毛片片v| 亚洲人成精品久久久久| 色偷偷成人一区二区三区91 | 香蕉久久夜色| 国产一区二区精品久久91| 国产日产欧美一区二区视频| 日韩在线导航| 成人av网站在线观看| 亚洲欧美日韩久久| 538prom精品视频线放| 久久国产日韩欧美| 国产黄色精品网站| 亚洲一区二区三区激情| 精品久久国产字幕高潮| 日韩久久不卡| a美女胸又www黄视频久久| 亚洲成人av一区二区| ww亚洲ww在线观看国产| 午夜精品视频在线观看一区二区 | 亚洲国产成人不卡| 成人精品亚洲人成在线| 亚洲国产成人va在线观看天堂| 欧美电视剧在线看免费| 亚洲欧洲国产精品久久| 91免费看网站| 国精产品一区一区三区mba桃花| 亚洲欧美一区二区视频| 欧美一级高清片| 色综合久久久久久久久| 精品国产一二| 99久久国产综合精品色伊| 琪琪久久久久日韩精品| 亚洲天堂免费在线观看视频| 日韩一区二区在线看片| 在线免费观看成人网| 久久精品国产综合精品| 97se狠狠狠综合亚洲狠狠| 激情久久五月天| 水野朝阳av一区二区三区| 亚洲欧美色图小说| 欧美国产亚洲另类动漫| 精品日韩av一区二区| 欧美日韩黄色一区二区| 亚洲乱码一区二区三区三上悠亚| 豆国产97在线| 97se狠狠狠综合亚洲狠狠| 国产精品99久久久久久有的能看| 午夜精品久久久久久久99樱桃| 亚洲天堂av一区| 国产喷白浆一区二区三区| 欧美成人伊人久久综合网| 欧美性一二三区| 色狠狠一区二区三区香蕉| 手机看片福利永久国产日韩| 国产欧美日韩伦理| 91在线播放视频| 96av麻豆蜜桃一区二区| 成人高清视频在线观看| 国产精品88av| 国产一区二区三区四| 国内精品第一页| 精品在线播放免费| 极品少妇一区二区三区精品视频| 日韩综合小视频| 日韩高清不卡一区二区三区| 午夜精品免费在线| 天天操天天干天天综合网| 天天做天天摸天天爽国产一区| 亚洲国产另类av| 丝袜亚洲另类欧美综合|