+2

Álbum de Fotos para Celulares (WAP/PHP)

criado por leo genilhu em 13/07/2004 2:09pm
No artigo, “Utilizando PHP e MySQL para gerar páginas WAP ”, falei um pouco sobre wap e php e dei um exemplo de php + mysql + wml. Devido ao grande numero de e-mails com perguntas resolvi escrever mais um artigo abordando o assunto.

No artigo passado utilizamos banco de dados neste vamos fazer pesquisa em disco.
Criaremos um arquivo onde listaremos todas as fotos disponiveis.

O padrão de fotos/imagens para wml é wbmp, ou seja nada diferente disto será visualizado no seu aparelho. Nosso script ira ler todas a fotos que estão no mesmo diretório do script e gerar um arquivo texto com o nome e tamanho das imagens para ai sim visualiza-la com uma paginação de Cinco em 5 fotos.

Vamos iniciar nosso script colocando o header indicando que sera tratado um arquivo wml.

<?php
Header("Content-type: text/vnd.wap.wml");
echo "<?xml version=\"1.0\"?>"; 
?>

<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" "http://www.wapforum.org/DTD/wml12.dtd">

<wml>
    <head>
        <meta http-equiv="Cache-Control" content="must-revalidate"/>
        <meta http-equiv="Expires" content="Tue, 01 Jan 1980 1:00:00 GMT"/>
        <meta http-equiv="Cache-Control" content="max-age=0"/>
    </head> 

    <card id="album" title="album de fotos"><p>

<?php
$fileimage = "list_img.txt";           #nome do arquivo texto referência do array 
$arquivo = fopen("$fileimage", 'w+');  #cria e abre o arquivo texto
$filedir = dirname(__FILE__);          #diretório local
$handle=opendir($filedir);             #abre o diretório local
while ($filet = readdir($handle)) {
    if ($filet=='.'||$filet=='..')
        continue;
    $filetl = strtolower($filet);                   #trasforma em para minusculas
    if (preg_match("/\.(wbmp)$/", $filetl)) {        #filtro apenas extensão wbmp  
        $filetlist [$filet] = filemtime ($filet);       #ordena por data de atualização
    }
}
if (empty($filetlist)) {
} else {
    arsort($filetlist);       #este array somente aceita asort ou arsort 
    while (list ($key, $val) = each ($filetlist)) {
        $filesize = filesize("$filedir/$key");
        fputs($arquivo, "$key|$filesize\n", 20000000);  #grava o nome do arquivo e o tamanho no arquivo texto
    } 
}
fclose($arquivo);
$arquivos = file("$fileimage");                 #lista os elementos em um array
$count = count($arquivos);                      #número total dos elementos do array
$nun_fotos = 5;                                 #define a quantidade de fotos por página 
if (empty($max)) {
    $max = $nun_fotos;
}
if (empty($min)) {
    $min = 0;
}
if ($max > $count) {
    $max = $count;
}
if ($max > $nun_fotos) {
   $min = $max - $nun_fotos;
}
for ($i = $min; $i < $max; $i++) {
    $imagename = $arquivos[$i]; 
    $array = explode("|", $imagename);             #extrai os elementos dos campos do array

    echo "<img src=\"$array[0]\" alt=\"Movel1\"/><br/>\n"; 

    echo "$array[0]<br/>\n";                       #imprime o nome do arquivo
}
$maxp = $max + $nun_fotos;                       #próxima página

if ($max < $count) {
    $link = "album.php?max=$maxp";                   #link do paginador
    echo "<a href=\"$link\">proximo</a><br/>\n"; 
} 
?>
<do type="prev" name="Prev" label="back">
<prev></prev>
</do>
</p></card>
</wml>
você podera ver na figura abaixo um exemplo. Cada foto estará uma abaixo da outra.

Comentários:

Mostrando 1 - 10 de 15 comentários
hawshinka disse:
Desenvolvi uma simples agenda de contatos e compromissos que pode ser visualizada pelo celular.

http://wap.hawshinka.net/wagenda

Podem se cadastrar diretamente pelo celular, ou entrar no site http://www.hawshinka.net/ e administrar seus dados por lá também...

Eu tinha criado isso para uso pessoal (inclusive pago o domínio para meu nick, mais pessoal impossível), mas alguns amigos pediram para disponibilizar para ver o sistema em funcionamento... então aí está!

Para aqueles que não entendem a aplicação de um sistema desses, experimentem ter seus celulares roubados 2x e perder toda a sua agenda de contatos e compromissos! Não guardo mais nada na memória do aparelho!

Qualquer coisa me mandem e-mails...
hawshinka2@gmail.com
17/01/2006 8:03pm (~18 anos atrás)

Achei muito legal esse artigo pois gosto muito dessa área. Entaum vamos investir nisso pessoal é o futuro. Flw
27/12/2005 5:35am (~18 anos atrás)

Sou estudante de Tecnologia em Informática do CEFET-PI, sou formanda e
estou desenvolvendo uma aplicação usando a tecnologia WAP, uso a
linguagem WML. Estou tendo dificuldades em encontrar comandos WML
para fazer acesso a Banco de dados (uso o MySQL), comando pra alterar,
atualizar, mostrar, enfim, comandos para manipular o banco atraves do
celular. Se possível, gostaria que me ajudasse me mandando algum
material e/ou exemplo sobre o assunto, gostaria que fosse bem especifico e
direto. A minha aplicação é sobre um plano odontológico.
28/08/2005 3:37pm (~18 anos atrás)

leo genilhu disse:
Ola Micao

Nao, nao eh possivel acessar um banco qualquer via WML ou WMLScript ja que estas linguagens sao do lado do cliente ou seja no celular.
Para voce poder conectar no banco precisa de script que rodo do lado do servidor, pode ser php,asp ou qualquer outra

nao conheco muito bem Delphi mais mando o codigo no meu email que dou uma olhada pra vc
08/12/2004 10:25am (~19 anos atrás)

Existe uma maneira (script) para eu acessar um banco de dados mysql diretamente com WML ou WMLScript?

Mição
27/09/2004 6:50pm (~19 anos atrás)

Sou programador de Delphi (Cliente/Servidor) e interessei-me por WAP em um livro do Emerson Facunte onde exemplifica uma programação integrando Delphi com WML (CGI com Delphi). Estou desenvolvendo um site WAP e estou com problemas ao acessar o Banco de Dados MySQL. Nos emuladores o acesso é perfeito, porém, ao utilizar o celular não consigo conexão. O acesso é feito por PHP. Outro problema que estou enfrentando é o fato de uma função em PHP não me retornar o valor do parâmetro enviado no CARD. Se alguém experiente puder me ajudar, encaminharei o código para entendimento.
Fico grato pela ajuda.

Mição
27/09/2004 6:49pm (~19 anos atrás)

Sou programador de Delphi (Cliente/Servidor) e interessei-me por WAP em um livro do Emerson Facunte onde exemplifica uma programação integrando Delphi com WML (CGI com Delphi). Estou desenvolvendo um site WAP e estou com problemas ao acessar o Banco de Dados MySQL. Nos emuladores o acesso é perfeito, porém, ao utilizar o celular não consigo conexão. O acesso é feito por PHP. Outro problema que estou enfrentando é o fato de uma função em PHP não me retornar o valor do parâmetro enviado no CARD. Se alguém experiente puder me ajudar, encaminharei o código para entendimento.
Fico grato pela ajuda.

Mição
27/09/2004 6:49pm (~19 anos atrás)

Sou programador de Delphi (Cliente/Servidor) e interessei-me por WAP em um livro do Emerson Facunte onde exemplifica uma programação integrando Delphi com WML (CGI com Delphi). Estou desenvolvendo um site WAP e estou com problemas ao acessar o Banco de Dados MySQL. Nos emuladores o acesso é perfeito, porém, ao utilizar o celular não consigo conexão. O acesso é feito por PHP. Outro problema que estou enfrentando é o fato de uma função em PHP não me retornar o valor do parâmetro enviado no CARD. Se alguém experiente puder me ajudar, encaminharei o código para entendimento.
Fico grato pela ajuda.

Mição
27/09/2004 6:49pm (~19 anos atrás)

Nilson Gomes disse:
Olá Leo , sempre tive vontade em programar alguma coisa pra Pocket pc o Wap , não sabia que com PHP tb é possível , quero aprender PHP Conto com vocês .

Obrigado

22/08/2004 3:01pm (~19 anos atrás)

Achei bem interessante o seu artigo, e por coincidencia (se é que elas existem), uma empresa esta me contratando para desenvolver um programa para celulares...

Eu nao tenho a menor idéia nem de como eu poderia "instalar" este programa no celular, imagine desenvolve-lo ! :)

Estou viajando na maionese de maneira olimpica neste assunto, será que alguém poderia me indicar alguma apostila ou livro ou paginas na internet (o q eu acho q seria melhor) para que eu faça uma pesquisa sobre o assunto.

Valeu !
28/07/2004 4:06pm (~19 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)