日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

解析php作wap開發(fā)時遇到的問題_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:談PHP編程在WAP開發(fā)中的應用
我們可以使用PHP來編寫WAP程序,比如開發(fā)動態(tài)的WML頁面,不過條件是需要將輸出的標簽或語句限制在WAP微型瀏覽器可接受的范圍之內(nèi)。而且,PHP 還可以在一個HTML(及HDML)文件中編寫出既適合于HTML(及HDML),也適合于WML的內(nèi)容。PHP的源代碼對于WAP客戶端來說是

1.文件格式

首先要遇到的問題肯定是文件格式,在作 web開發(fā)時,大家都是用的html或xhtml,到了wap開發(fā)時,就得用wml了.什么是wml?大家可以去查更詳細的資料,我這里只是略微的提到. 在我看來wml類似于xml,有非常嚴格的格式,在作wap頁面時,都得用wml來作為顯示.

wml的語法非常簡單,在用php作動態(tài)輸出時,一定要發(fā)送一個頭信息,標明本頁面是wml,而不是別的什么*ml.

header("Content-type: text/vnd.wap.wml; charset="gb2312"");

?>

這里用的字符集是gb2312,在移動的平臺上是沒有任何問題的,但在聯(lián)通的平臺上就不行了,一定得用utf-8,為了更通用,還是用utf-8更安全.即

header("Content-type: text/vnd.wap.wml; charset="utf-8"");

?>

2.編碼

上面說了字符集都應采用utf-8,這是一種容納了多國語言的字符集,一個漢字是占雙字節(jié),utf-8占了4個字節(jié),因此其容納的信息量更大.在手機上編寫的漢字,在將頁面內(nèi)碼轉成utf-8后,以后再打開就可能是一堆亂碼.因此大家在作注釋時,盡可能的用英文注釋,省得以后看不懂.像editplus, ultraedit等工具都可以轉文件內(nèi)碼.

3.適配

世界各大手機廠商真是有病,開發(fā)出的手機千奇百怪,可以支持的格式也是五花八門.比如鈴聲,有的可以支持,16,32,48和弦,支持mid,wmv,有的不完全支持;有的支持gif,png,bmp,有的也不完全支持.這雖然是把手機的檔次和成本拉開了,但卻苦了作手機開發(fā)的兄弟們了.因為不可避免的要對手機所能支持的圖片,鈴聲等多媒體信息作出一個匹配,這個匹配的處理,我們一般叫做手機適配.

要作手機適配,我們一般得有如下資料.

1)一份詳細的手機適配資料表,里面應詳細的說明手機所能支持的鈴聲,圖片格式,還得有手機型號等信息

2)要正確的獲取手機的UA,什么是UA,就是(user agent),實際上就是用戶的手機信息.

有了上面的東東我們才能做出適配.以下給出一個我寫的在wap開發(fā)中用到的類,可以用來取手機號,手機UA.

/**

* 類名: mobile

* 描述: 手機信息類

* 其他: 偶然 編寫

*/

class mobile

{

/**

* 函數(shù)名稱: getPhoneNumber

* 函數(shù)功能: 取手機號

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回號碼,失敗返回false

* 其它說明: 說明

*/

function getPhoneNumber()

{

if (isset($_SERVER['HTTP_X_NETWORK_INFO']))

{

$str1 = $_SERVER['HTTP_X_NETWORK_INFO'];

$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);

Return $getstr1;

}

elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))

{

$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];

Return $getstr2;

}

elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))

{

$str3 = $_SERVER['HTTP_X_UP_SUBNO'];

$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);

Return $getstr3;

}

elseif (isset($_SERVER['DEVICEID']))

{

Return $_SERVER['DEVICEID'];

}

else

{

Return false;

}

}

/**

* 函數(shù)名稱: getHttpHeader

* 函數(shù)功能: 取頭信息

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回號碼,失敗返回false

* 其它說明: 說明

*/

function getHttpHeader()

{

$str = ''

foreach ($_SERVER as $key=>$val)

{

$gstr = str_replace("&","&",$val);

$str.= "$key -> ".$gstr." ";

}

Return $str;

}

/**

* 函數(shù)名稱: getUA

* 函數(shù)功能: 取UA

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回號碼,失敗返回false

* 其它說明: 說明

*/

function getUA()

{

if (isset($_SERVER['HTTP_USER_AGENT']))

{

Return $_SERVER['HTTP_USER_AGENT'];

}

else

{

Return false;

}

}

/**

* 函數(shù)名稱: getPhoneType

* 函數(shù)功能: 取得手機類型

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回string,失敗返回false

* 其它說明: 說明

*/

function getPhoneType()

{

$ua = $this->getUA();

if($ua!=false)

{

$str = explode(' ',$ua);

Return $str[0];

}

else

{

Return false;

}

}

/**

* 函數(shù)名稱: isOpera

* 函數(shù)功能: 判斷是否是opera

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回string,失敗返回false

* 其它說明: 說明

*/

function isOpera()

{

$uainfo = $this->getUA();

if (preg_match('/.*Opera.*/i',$uainfo))

{

Return true;

}

else

{

Return false;

}

}

/**

* 函數(shù)名稱: isM3gate

* 函數(shù)功能: 判斷是否是m3gate

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回string,失敗返回false

* 其它說明: 說明

*/

function isM3gate()

{

$uainfo = $this->getUA();

if (preg_match('/M3Gate/i',$uainfo))

{

Return true;

}

else

{

Return false;

}

}

/**

* 函數(shù)名稱: getHttpAccept

* 函數(shù)功能: 取得HA

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回string,失敗返回false

* 其它說明: 說明

*/

function getHttpAccept()

{

if (isset($_SERVER['HTTP_ACCEPT']))

{

Return $_SERVER['HTTP_ACCEPT'];

}

else

{

Return false;

}

}

/**

* 函數(shù)名稱: getIP

* 函數(shù)功能: 取得手機IP

* 輸入?yún)?shù): none

* 函數(shù)返回值: 成功返回string

* 其它說明: 說明

*/

function getIP()

{

$ip=getenv('REMOTE_ADDR');

$ip_ = getenv('HTTP_X_FORWARDED_FOR');

if (($ip_ != "") && ($ip_ != "unknown"))

{

$ip=$ip_;

}

return $ip;

}

}

?>

4.頁面設計

作wap開發(fā)時,wap頁面是非常簡單的.比html來說是簡單到不能再簡單了.在wap1.0里是沒有表格之類的亂七八糟的東西的.所有的標簽都是寫在一個叫card的標簽之內(nèi).可以用來分段.所以做頁面的算是輕松了.

5.模擬器

作wap 開發(fā)免不了要用各式各樣的模擬器來測試,比較好的有m3gate,openwave,opera,還有一個叫winwap的,大家最好別用他來作測試,他的兼容性太好了,即使頁面有錯誤都能給忽略掉.測試時跟用瀏覽器測試web頁面一樣,輸入網(wǎng)址就可以了.沒有比這更容易的事了.

6.注意事項

1)空格,特別是在定義DTD時,

echo "";

?>

里面如果哪個地方少個空格,就有你受的了.以前寫的時候用了頁面重排之后,把一些空格給干掉了,整整找了兩天才找出錯誤來,大家千萬別步我的后塵.

2)標簽,如果標簽不成對,會提示錯誤,大家注意就是了,很容易修正.

分享:怎樣通過SMTP發(fā)送電子郵件
由于PHP沒有提供現(xiàn)成的smtp函數(shù),卻提供了一個功能不甚靈活的mail()函數(shù),這個函數(shù)需要服務器配置上的支持,并且不支持smtp驗證,在很多場合無法正常的工作,因此不建議使用。本文的目的在于為新手指明方向,并沒有涉及那些高級的內(nèi)容,一來本身水平有限,二

來源:模板無憂//所屬分類:PHP教程/更新時間:2009-06-26
相關PHP教程