slamdunk3 のブログから選択
1. ファイル形式 Web 開発を行うとき、最初に直面する必要があるのはファイル形式です。WAP 開発に関しては、wml を使用する必要があります。
ここでは簡単に説明しただけですが、wml は XML に似ており、WAP ページを作成する際
には、表示に wml を使用する必要があります。
動的出力用の PHP では、このページが他の *ml ではなく wml であることを示すヘッダー メッセージを送信する必要があります。
header("Content-type: text/vnd.wap.wml; charset=" gb2312"");
?>
ここで使用される文字セットは gb2312 です。モバイル プラットフォームでは問題ありませんが、より汎用性を高めるために UTF-8 を使用する必要があります。 -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'] を返します;
}
それ以外
{
false を返します。
}
}
/**
※関数名: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'] を返します。
}
それ以外
{
false を返します。
}
}
/**
※関数名:getPhoneType
* 機能: 携帯電話の種類を取得します。
* 入力パラメータ: なし
* 関数の戻り値: 成功した場合は文字列、失敗した場合は false
※その他の注意事項:説明書
*/
関数 getPhoneType()
{
$ua = $this->getUA();
if($ua!=false)
{
$str =explode(' ',$ua);
$str[0] を返します;
}
それ以外
{
false を返します。
}
}
/**
※関数名:isOpera
* 機能: オペラかどうかを判断します
* 入力パラメータ: なしwww.knowsky.com
* 関数の戻り値: 成功した場合は文字列、失敗した場合は false
※その他の注意事項:説明書
*/
関数 isOpera()
{
$uainfo = $this->getUA();
if (preg_match('/.*Opera.*/i',$uainfo))
{
true を返します。
}
それ以外
{
false を返します。
}
}
/**
※関数名:isM3gate
* 機能: m3gate かどうかを判断します。
* 入力パラメータ: なし
* 関数の戻り値: 成功した場合は文字列、失敗した場合は false
※その他の注意事項:説明書
*/
関数 isM3gate()
{
$uainfo = $this->getUA();
if (preg_match('/M3Gate/i',$uainfo))
{
true を返します。
}
それ以外
{
false を返します。
}
}
/**
※関数名:getHttpAccept
* 機能: HA の取得
* 入力パラメータ: なし
* 関数の戻り値: 成功した場合は文字列、失敗した場合は false
※その他の注意事項:説明書
*/
関数 getHttpAccept()
{
if (isset($_SERVER['HTTP_ACCEPT']))
{
$_SERVER['HTTP_ACCEPT'] を返します。
}
それ以外
{
false を返します。
}
}
/**
※関数名:getIP
* 機能: 携帯電話のIPを取得
* 入力パラメータ: なし
* 関数の戻り値: 文字列が正常に返されました
※その他の注意事項:説明書
*/
関数getIP()
{
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
if (($ip_ != "") && ($ip_ != "不明"))
{
$ip=$ip_;
}
$ip を返します。
}
}
?>
4. ページのデザイン
wap を開発する場合、wap ページは非常にシンプルです。wap1.0 では、テーブルのような煩わしいものはなく、すべてカードと呼ばれるタグで記述されます。セグメンテーションに使用できるので、ページの作成が簡単です。
wap の開発には、m3gate、opera、および winwap と呼ばれるさまざまなシミュレーターを使用することが不可欠です
。
テストには使用しないことをお勧めします。ページにエラーがあっても、テストはブラウザを使用して URL を入力するのと同じです。
6. 注意事項
1) スペース、特に DTD を定義する場合
。
エコー「」;
?>
どこかにスペースが欠けていると、問題が発生します。私は、ページの再配置を使用して、エラーを見つけるのに 2 日かかりました
。 ) タグ。タグがペアになっていない場合、エラーが表示されます。注意するだけで簡単に修正できます。