ホームページ > バックエンド開発 > PHPチュートリアル > Wap 開発に php を使用するときに発生する関連問題

Wap 開発に php を使用するときに発生する関連問題

WBOY
リリース: 2016-06-13 13:13:25
オリジナル
779 人が閲覧しました

wap 開発に php を使用するときに発生した問題
1. ファイル形式

Web 開発を行うとき、必ず最初に直面する問題はファイル形式です。WAP 開発に関しては、wml を使用する必要があります。詳細については、ここで簡単に説明しましたが、wml は xml に似ており、wap ページを作成する場合は、表示に wml を使用する必要があると考えています。 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 では、これは複数の言語に対応する文字セットです。1 つの漢字は 2 バイトを占有し、UTF-8 は 4 バイトを占有するため、携帯電話で記述されたより多くの情報をページ内に収容できます。 UTF-8 に変換すると、今後開いたときに文字化けが発生する可能性がありますので、コメントを作成する際は、editplus、ultraedit、などのツールを使用して、できるだけ英語のコメントを使用するようにしてください。他のツールはファイルの内部コードを変換できます。

3. 適応

世界の大手携帯電話メーカーは、あらゆる種類の奇妙な携帯電話を開発し、さまざまなサポートを行っています。たとえば、一部の着信音は 16、32、48 コードをサポートしていますが、完全にはサポートしていないものもあります。ただし、gif、png、bmp をサポートしているものもあります。携帯電話の開発は、携帯電話がサポートできる画像、着信音、その他のマルチメディア情報を一致させることが避けられないため、一般に携帯電話の適応と呼ばれます。 🎜>
携帯電話の適応を行うには、通常、次の情報が必要です。

1) 携帯電話の適応データシート。これには、携帯電話の着信音と画像形式が詳細に記載されています。携帯電話がサポートできる情報、携帯電話のモデルやその他の情報

2) 携帯電話の UA を正しく取得するには、UA とは (ユーザー エージェント)、実際にはユーザーの携帯電話情報です。 🎜>
上記を使用してのみ、適応を行うことができます。 以下は、携帯電話番号と携帯電話 UA を取得するために使用できる、WAP 開発で使用されるクラスを作成します。 *

* クラス名: mobile

* 説明: 携帯電話情報クラス

* その他: 誤書き込み

*/

クラスモバイル

{

/**

* 関数名: getPhoneNumber

* 関数関数: 携帯電話番号の取得

* 入力パラメータ: なし

* 関数戻り値: 番号が正常に返されました、失敗すると 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

{

false を返す;

}

}

/**

* 関数名: getHttpHeader

* 関数関数: ヘッダー情報の取得

* 入力パラメーター: なし

* 関数戻り値: 正常に数値を返しました。失敗すると false が返されます

* その他の命令: 説明

*/

function getHttpHeader ()

{

$str = ''

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

{

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

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

}

$str;

}

/**

* 関数名: getUA

* 関数関数: Get UA

* 入力パラメータ: なし

* 関数戻り値: 成功した場合は数値を返します。失敗した場合は false を返します

* その他の命令: 説明

*/

function getUA()

{

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

{

Return $_SERVER ['HTTP_USER_AGENT'];

}

else

{

Return false;

}

}

/**

* 関数名: getPhoneType

* 関数機能: 電話タイプを取得する

* 入力パラメータ: なし

* 関数戻り値: 文字列を正常に返します、失敗すると false が返されます

* その他の指示: 説明

*/

function getPhoneType()

{

$ua = $this->getUA();

if($ua!=false)

{

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

Return $str[0];

}

else

{

Return false;

}

}

/**

* 関数名: isOpera

* 関数の機能: opera であるかどうかを判断します

* 入力パラメータ: なし

* 関数の戻り値: 戻り値の文字列成功した場合、失敗した場合は false

* を返します。 その他の命令: 説明

。*/

関数isOpera()

{

$uainfo = $this->getUA();

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

{

Return true;

}

else

{

Return false;

}

}

/**

* 関数名: isM3gate

* 関数の機能: m3gate かどうかを判定

* 入力パラメータ: なし

* 関数の戻り値: 戻り値の文字列成功した場合、失敗した場合は false

* を返します。 その他の命令: 説明

。*/

関数 isM3gate()

{

$uainfo = $this->getUA();

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

{

Return true;

}

else

{

Return false;

}

}

/ **

* 関数名: getHttpAccept

* 関数関数: Get HA

* 入力パラメータ: なし

* 関数戻り値: 成功時に文字列を返します。失敗時は false を返します

* その他の命令: 説明

*/

function getHttpAccept()

{

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

{

Return $_SERVER['HTTP_ACCEPT'];

}

else

{

Return false;

}

}

/**

* 関数名: getIP

* 関数関数: 携帯電話の IP を取得

* 入力パラメータ: なし

* 関数戻り値: 戻り文字列
* その他の指示: 説明

*/

function getIP()

{

$ip=getenv ('REMOTE_ADDR');

$ip_ = getenv('HTTP_X_FORWARDED_FOR');

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

{

$ip=$ip_;

}

return $ip;

}

}

?>

4.页面设计

作wap开発行時、wap页面是常简单的。比html来说是简单到再简单了。在wap1 .0里は表格のない乱七八糟の西の.すべての标签都は一枚のカードの标签内に書かれています。可用性があり、分割されています。 .模拟器

作wap开発免不了要各種各样的模拟器来试、比较好的有m3gate、openwave、opera、又有一叫winwap的、大家最好别他用来作测试、他的互換性大好了、即页面有错误都能给忽略掉。跟用浏览器测试ウェブ页面一样、输入网址就可了。これよりも簡単なことです。

6.注意事项

1)空格、特に定义DTD時、

echo "";

?>

里面如果哪个地方少个空格、就有你受的了。前写的候用了页面重排之後、把一部空格给干掉了、整整找了两天才找出错误来、大家千万别步我的後尘。

2)标签、如果标签不成对、会提案错误、大家注意就是了、很容易修正。
转自:http://www.wapkf.com/viewthread.php?tid=64&extra =ページ%3D1

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート