Seleccionado del Blog de slamdunk3
1. Formato de archivo El primer problema que debes encontrar es el formato de archivo. Cuando se hace desarrollo web, todos usan html o xhtml. Cuando se trata de desarrollo wap, debes usar wml. información más detallada. Solo lo mencioné brevemente aquí. En mi opinión, wml es similar a xml y tiene un formato muy estricto. Al crear páginas wap, debe usar wml para mostrar
. PHP para salida dinámica, debe enviar un mensaje de encabezado para indicar que esta página es wml, no otro *ml
header("Content-type: text/vnd.wap.wml; charset=" gb2312"");
?>
El conjunto de caracteres utilizado aquí es gb2312. No hay problema en la plataforma móvil, pero no funcionará en la plataforma China Unicom. Para que sea más versátil, es más seguro utilizar UTF. -8. Eso es
encabezado("Tipo de contenido: text/vnd.wap.wml; charset="utf-8"");
?>
2. Codificación
Como se mencionó anteriormente, todo el conjunto de caracteres debe usar utf-8. Este es un conjunto de caracteres que se adapta a varios idiomas. Un carácter chino ocupa dos bytes y utf-8 ocupa 4 bytes, por lo que puede acomodar La cantidad. La cantidad de información es mayor, los caracteres chinos escritos en el teléfono móvil pueden ser un montón de caracteres confusos después de que el código de la página se convierte a utf-8 cuando se abre más tarde. Por lo tanto, al hacer comentarios, utilice comentarios en inglés tanto como sea posible para evitar problemas innecesarios. No podré entenderlo en el futuro. Herramientas como editplus y ultraedit pueden convertir el código interno de los archivos.
3.
Es realmente difícil adaptarse a los principales fabricantes de teléfonos móviles del mundo. son extraños y pueden admitir una variedad de formatos, por ejemplo, tonos de llamada, algunos admiten 16, 32, 48 acordes, admiten medios, wmv, algunos no lo admiten por completo, otros no lo admiten por completo; Aunque esto aumenta la calidad y el costo de los teléfonos móviles, es difícil para los hermanos que se dedican al desarrollo de teléfonos móviles porque es inevitable hacer coincidir las imágenes, los tonos de llamada y otra información multimedia que el teléfono móvil puede tener. soporte. Este proceso de emparejamiento generalmente se denomina adaptación del teléfono móvil.
Para realizar la adaptación del teléfono móvil, generalmente necesitamos la siguiente información:
1) Una hoja de datos detallada de adaptación del teléfono móvil, que debe describir en detalle los tonos de llamada y los formatos de imágenes que el teléfono móvil puede admitir, así como el modelo del teléfono móvil y otra información.
2) Para obtener correctamente la UA del teléfono móvil, qué es UA (agente de usuario), que en realidad es la información del teléfono móvil del usuario.
Solo con lo anterior podemos hacer adaptaciones. Aquí escribí una en las clases utilizadas en wap. El desarrollo se puede utilizar para obtener números de teléfono móvil y UA de teléfono móvil
/**.
* Nombre de clase: móvil
* Descripción: Información del teléfono móvil
*Otros: Escritos por casualidad
*/
móvil de clase
{
/**
* Nombre de la función: getPhoneNumber
* Función: Obtener número de teléfono móvil
* Parámetros de entrada: ninguno
* Valor de retorno de la función: devuelve el número si tiene éxito, falso si falla
* Otras instrucciones: instrucciones
*/
función obtenerNúmeroTeléfono()
{
si (isset($_SERVER['HTTP_X_NETWORK_INFO']))
{
$cadena1 = $_SERVER['HTTP_X_NETWORK_INFO'];
$getstr1 = preg_replace('/(.*,)(11[d])(,.*)/i','',$str1);
Devuelve $getstr1;
}
elseif (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID']))
{
$getstr2 = $_SERVER['HTTP_X_UP_CALLING_LINE_ID'];
Devuelve $getstr2;
}
elseif (isset($_SERVER['HTTP_X_UP_SUBNO']))
{
$cadena3 = $_SERVER['HTTP_X_UP_SUBNO'];
$getstr3 = preg_replace('/(.*)(11[d])(.*)/i','',$str3);
Devuelve $getstr3;
}
elseif (isset($_SERVER['DEVICEID']))
{
Devuelve $_SERVER['DEVICEID'];
}
demás
{
Devuelve falso;
}
}
/**
* Nombre de la función: getHttpHeader
* Función: Obtener información del encabezado
* Parámetros de entrada: ninguno
* Valor de retorno de la función: devuelve el número si tiene éxito, falso si falla
* Otras instrucciones: instrucciones
*/
función getHttpHeader()
{
$cadena = '';
foreach ($_SERVER como $clave=>$val)
{
$gstr = str_replace("&","&",$val);
$cadena.= "$clave -> ".$gstr."rn";
}
Devuelve $cadena;
}
/**
* Nombre de la función: getUA
* Función: Obtener UA
* Parámetros de entrada: ninguno
* Valor de retorno de la función: devuelve el número si tiene éxito, falso si falla
* Otras instrucciones: instrucciones
*/
función obtenerUA()
{
si (isset($_SERVER['HTTP_USER_AGENT']))
{
Devuelve $_SERVER['HTTP_USER_AGENT'];
}
demás
{
Devuelve falso;
}
}
/**
* Nombre de la función: getPhoneType
* Función: Obtener el tipo de teléfono móvil
* Parámetros de entrada: ninguno
* Valor de retorno de la función: cadena si tiene éxito, falso si falla
* Otras instrucciones: instrucciones
*/
función getPhoneType()
{
$ua = $this->getUA();
si($ua!=falso)
{
$cadena = explotar(' ',$ua);
Devuelve $cadena[0];
}
demás
{
Devuelve falso;
}
}
/**
* Nombre de la función: isOpera
* Función: Determinar si es ópera.
* Parámetros de entrada: ninguno www.knowsky.com
* Valor de retorno de la función: cadena si tiene éxito, falso si falla
* Otras instrucciones: instrucciones
*/
la función es Opera()
{
$uainfo = $this->getUA();
si (preg_match('/.*Opera.*/i',$uainfo))
{
Devuelve verdadero;
}
demás
{
Devuelve falso;
}
}
/**
* Nombre de la función: isM3gate
* Función: Determinar si es m3gate
* Parámetros de entrada: ninguno
* Valor de retorno de la función: cadena si tiene éxito, falso si falla
* Otras instrucciones: instrucciones
*/
función esM3gate()
{
$uainfo = $this->getUA();
si (preg_match('/M3Gate/i',$uainfo))
{
Devuelve verdadero;
}
demás
{
Devuelve falso;
}
}
/**
* Nombre de la función: getHttpAccept
* Función: Obtener HA
* Parámetros de entrada: ninguno
* Valor de retorno de la función: cadena si tiene éxito, falso si falla
* Otras instrucciones: instrucciones
*/
función getHttpAccept()
{
si (isset($_SERVER['HTTP_ACCEPT']))
{
Devuelve $_SERVER['HTTP_ACCEPT'];
}
demás
{
Devuelve falso;
}
}
/**
* Nombre de la función: getIP
* Función: Obtener IP del teléfono móvil
* Parámetros de entrada: ninguno
* Valor de retorno de la función: cadena devuelta correctamente
* Otras instrucciones: instrucciones
*/
función obtener IP()
{
$ip=getenv('REMOTE_ADDR');
$ip_ = getenv('HTTP_X_FORWARDED_FOR');
si (($ip_!= "") && ($ip_!= "desconocido"))
{
$ip=$ip_;
}
devolver $ip;
}
}
?>
4. Diseño de página
Al desarrollar wap, la página wap es muy simple. No puede ser más simple que html. En wap1.0, no hay cosas complicadas como tablas. Todas las etiquetas están escritas en una etiqueta llamada tarjeta. Se puede utilizar para la segmentación, por lo que es fácil crear páginas.
5. Simulador
Para el desarrollo de wap, es inevitable utilizar varios simuladores para realizar pruebas. El mejor es m3gate, openwave, opera y uno llamado winwap. Es mejor no usarlo para realizar pruebas. Su compatibilidad es tan buena que incluso si hay errores en la página, pueden ignorarse. La prueba es lo mismo que usar un navegador para probar una página web, simplemente ingrese la URL. No hay nada más fácil que esto
6. Notas
1) Espacios, especialmente al definir DTD.
eco "";
?>
Si faltan espacios en alguna parte, sufrirás. Cuando estaba escribiendo, utilicé la reorganización de la página para eliminar algunos espacios. Me tomó dos días encontrar el error. No sigas mi ejemplo
. ) Etiquetas, si las etiquetas no están emparejadas, se generará un error. Solo preste atención, es fácil de corregir.