Ir para o conteúdo
ou

Thin logo

Comunidade para programadores que gostam da combinação perfeita entre PHP e Linux.

 Voltar a Linux - PHP
Tela cheia Sugerir um artigo

Brincando com XML

29 de Outubro de 2011, 0:00 , por Software Livre Brasil - 0sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 884 vezes

Um exemplo de como aplicar XML em um código PHP. Simples, para começar e seguir como funciona. Verá que é fácil e com um pouco de idéias vai longe.

Arquivo sistema.xml

<?xml version="1.0" encoding="UTF-8" ?>

<sistemas>
   
    <sistema name="Linux" value="LI" votes="200" />
    <sistema name="Windows" value="WI" votes="130" />
    <sistema name="MAC-OS" value="MA" votes="30" />   
   
</sistemas>

 

Vamos criar três arquivos: sistema.xml, votar.php e index.php. Todos no mesmo diretório.

Arquivo votar.php

<?php

if(isset($_POST['vote'])){ /*Verifica se há post*/
   
    if(isset($_COOKIE['voteaqui'])){ /*Verifica se há o cookie voteaqui*/
        echo $message = 'Nada de votar de novo';
    }
    else{
        echo $message  = 'ok ok ok ok, valeu demais!';
       
        $loaddom = new DOMDocument(); /*Extensão DOM para trabalhar com XML*/
       
        $loaddom->load("sistema.xml"); /*carrega o arquivo*/
       
        $path = new DOMXPath($loaddom); /*Retorna os itens do XML*/
       
        $units = $path->query('//sistema');
       
        foreach($units as $unit){
           
            $value = $unit->getAttribute('value');
           
            if($value == $_POST['sistema']){
               
                $votes = $unit->getAttribute('votes'); /*Retorna o atributo votes do arquivo xml*/
                $unit->setAttribute('votes', ++$votes);
               
                setcookie("voteaqui", true, time()+(24*60*60)); /*24hs*/
               
                break;
               
            }
           
        }
        $loaddom->save('sistema.xml'); /*Salva a arvore interna do XML e volta ao arquivo*/
    }
   
   
}
?>


Após criar o arquivo votar, vamos criar o HTML da história:

Arquivo index.php

<form method="post" action="votar.php">
           
            <fieldset>
               
                <legend>Qual sistema você mais gosta?</legend>
                    
                <ul>
                   
                    <?php
                        $dom = new DOMDocument();
                       
                        $dom->load('sistema.xml');
                       
                        $xpath = new DOMXPath($dom);
                       
                        $sistemas = $xpath->query('//sistema');
                       
                        foreach($sistemas as $sistema){
                           
                            $checked = ($_POST['sistema'] == $sistema->getAttribute('value')) ? 'checked' : '';


                            echo '<li> <input  type="radio" name="sistema" '.$checked.' value="'.$sistema->getAttribute('value').'"/>'.$sistema->getAttribute('name').'</li>';
                           
                        }
                    ?>                                      
                   
                </ul>
               
                <input type="submit" value="vote" name="vote"/>
            </fieldset>
           
        </form>
   

Agora é só abrir e ver o resultado. Veja o exemplo aqui

Versão do PHP utilizada:  5.3

 


Tags deste artigo: php5 xml

0sem comentários ainda

Enviar um comentário

Os campos são obrigatórios.

Se você é um usuário registrado, pode se identificar e ser reconhecido automaticamente.