Jump to content


Felipe Pena

Member Since 09/04/2004
Offline Last Active 25/06/2013, 10:07
*****

#976765 Problema Com Preg_match_all

Posted by Felipe Pena on 09/08/2009, 12:04

Com DOM e SimpleXML é possível fazer dessa forma:

[codebox]<?php

$dom = new DOMDocument;
@$dom->loadHTMLFile('http://luizhcota.k2f...om/TestePhp.php');

$html = simplexml_import_dom($dom);

foreach ($html->body->center->table->tr[1] as $table) {
foreach ($table->div->table->tr as $x) {
var_dump((string)$x->td[3]);
}
}
[/codebox]


#796207 Jogo De Forca

Posted by Felipe Pena on 04/11/2006, 10:34

Jogo de Forca
Jogo de forca tradicional feito com Javascript + CSS.
--------------------------------------------------------------------------

.JS: http://ecl.mediain.c...ca/gameForca.js

Visualização: http://ecl.mediain.c...projetos/Forca/


#765628 Instalação Dbd::mysql

Posted by Felipe Pena on 26/07/2006, 14:36

Olá pessoal!

Consegui utilizar sem problemas o módulo HTML::Template, sendo que ele não veio junto do ActivePerl.

Daí coloquei em C:\Perl\site\lib\HTML\ , enfim, funcionou perfeitamente.

Mas agora com esse DBI, DBD::Mysql não consegui usar.

Testei com o artigo do João Gabriel que está na CGIClube:
http://cgiclube.cida...ea=artigos&id=4

Dei um jeito em uns erros aqui, e agora ficou este:

DBD::mysql initialisation failed: Can't locate object method 'driver' via package DBD::mysql


Ai, ai, ai ... Haja paciência! :rolleyes: :P

Vou continuar tentando, qualquer coisa comunico.


#703701 Caça Palavras

Posted by Felipe Pena on 12/02/2006, 13:47

Olá pessoal, resolvi postar aqui o simples caça palavras que eu fiz.

Com mais tempo tentarei desenvolver melhor o caça palavras, ou seja, com todos os tipos de busca.

Neste modelo inicial possui busca: horizontal, vertical e diagonal primária.
Obs.: Não reversa.

Você pode informar um texto no método setTexto(), ou deixar vazio, que acarretaria na criação randomica seguindo as definições de LINHAS e COLUNAS no arquivo que contém a classe.

Acesse o arquivo index.php, indicando pela url as palavras a serem buscadas.
Exemplo: index.php?w=galinha,lobo,cervo,camelo,aranha,xxxxxx

index.php
<style>
      .d { background-color: yellow; color: red; }
      body { font-size: 40px;  }
</style>

<center>
<pre>
<?php
require 'class.cacapalavras.php';

    $cPalavras = new CacaPalavras;
    $cPalavras->setPalavra($_GET['w']);
    $cPalavras->setTexto("
    VAVÁKXÉXÓW
    TMZFUIWAJG
    VÊWCAMELOA
    JQLQEOXMÃL
    CSÍOVRÁXVI
    ZVBRBÊVNEN
    SOEMFOAOAH
    LCTGRNPYDA
    ARANHAOPOL
    GÉRWÊRWVPB
    ");

    print $cPalavras->getTexto();
?>

class.cacapalavrasa.php
<?php

// * @class :: Caça palavras
// * @date  :: 2006-02-07
// * @autor :: Felipe Nascimento Silva Pena <felipensp@gmail.com>
//----------------------------------------------------------------


// Número de linhas
// O número só será fixo caso o texto
// Seja gerado pelo próprio sistema
define("LINHAS", 15);

// Número de colunas
// O número só será obedecido se nenhum
// texto for fornecido ou se o texto
// fornecido conter número de caracteres
// maior que o definido.
define("COLUNAS", 10);


class CacaPalavras
{

   // Variável da classe que conterá a(s) string(s)
   // a ser(em) procurada(s) no texto
   var $_palavra;
   
   // Array que contém cada letra de cada
   // linha do texto
   var $_linhas = array();
   
   // Array que contém cada letra de cada
   // coluna do texto
   var $_colunas = array();
   
   // Armazena o caça palavras formado
   var $_cacapalavra = array();
   
   // Armazena o texto externo informado
   var $_texto;
   

   function CacaPalavras()
   {
      // Verificando se linha e coluna é maior que uma palavra normal
      if (min(COLUNAS, LINHAS) < 3) {
         $this->_getErro("É necessário no mínimo de 3 linhas e 3 colunas.");
      }
   }
   
   
   function setPalavra($palavra)
   {
      $this->_palavra = $palavra;

      // Formatar o conteúdo da variável informada
      if (!$this->_criarArrPalavras()) {
         $this->_getErro("Informe pelo menos uma palavra.");
      }
   }
   
   
   function setTexto($texto = null)
   {
      $this->_texto = $texto;

      // Criar array com os valores das linhas
      if (!$this->_criarArrTexto()) {
         $this->_getErro("O texto fornecido é inválido.");
      }
   }
   
   
   function _destaque($string)
   {
      for ($i = 0; $i < strlen($string); $i++) {
         $saida .= "<span class='d'>" . $string{$i} . "</span>";
      }
      
      return $saida;
   }
   
   
   function getTexto()
   {
      // Horizontal
      foreach ($this->_linhas as $k => $linhas) {
         $contText = implode("", $linhas);
         
         foreach ($this->_palavra as $palavra) {
            $contText = preg_replace("/({$palavra})/e", '$this->_destaque("\\1")', $contText);
         }
         
         preg_match_all("/([[:alpha:]]|(<[^<]+>)?[[:alpha:]]+(<\/[^<]+>)?)/", $contText, $match);
         $this->_linhas[$k] = $match[0];
      }
      
      if (count($this->_linhas) > 1) {
         // Vertical
         foreach ($this->_colunas as $k => $colunas) {
            $contText = implode("", $colunas);

            foreach ($this->_palavra as $palavra) {
               $contText = preg_replace("/({$palavra})/e", '$this->_destaque("\\1")', $contText);
            }

            preg_match_all("/([[:alpha:]]|(<[^<]+>)?[[:alpha:]]+(<\/[^<]+>)?)/", $contText, $match);
            $this->_colunas[$k] = $match[0];
         }

         // Diagonal primária
         foreach ($this->_palavra as $palavra) {
            foreach ($this->_linhas as $linha => $conteudo) {

               if ((count($this->_linhas) - $linha) < strlen($palavra) || strlen($palavra) < 2) break;

               $cont = implode('', $conteudo);
               
               for ($i = 0; $i < (strlen($cont) - strlen($palavra)); $i++) {
                  $diagonal = '';
                  $pos = array();

                  for ($c = 0; $c < strlen($palavra); $c++) {
                     $diagonal .= preg_replace("/(<[^<]+>)(\w)(<\/[^>]+>)/", "\\2", $this->_linhas[$linha+$c][$i+$c]);
                     $pos[] = $i+$c;
                  }
                  
                  if (strlen($diagonal) != strlen($palavra)) break;

                  if ($diagonal == $palavra) {
                     for ($c = 0; $c < strlen($palavra); $c++) {
                        $this->_linhas[$linha+$c][$pos[$c]] = preg_replace("/(\w)/e", '$this->_destaque("\\1")', $diagonal{$c});
                     }
                  }
               }
               
            }
         }

      }

     return $this->_getStrArr();
   }
   
   
   function _getStrArr()
   {
      foreach ($this->_colunas as $k => $coluna) {
         for ($i = 0; $i < count($this->_linhas[0]); $i++) {
            if (!preg_match("/^\w$/", $this->_linhas[$k][$i])) {
               $this->_cacapalavra[$k][$i] = $this->_linhas[$k][$i];
            } elseif (!preg_match("/^\w$/", $this->_colunas[$i][$k])) {
               $this->_cacapalavra[$k][$i] = $this->_colunas[$i][$k];
            } else {
               $this->_cacapalavra[$k][$i] = $this->_linhas[$k][$i];
            }
         }
      }

      foreach ($this->_cacapalavra as $k => $linhas) {
         if ($conteudo = implode('', $linhas)) {
            $saida .= $conteudo . "\n";
         }
      }

      return $saida;
   }
   
   
   function _criarArrTexto()
   {
      if (!$this->_texto) {
         for ($i = 0; $i < LINHAS; $i++) {
            for ($j = 0; $j < COLUNAS; $j++) {
               $this->_linhas[$i][$j] = chr(rand(65,90));
            }
            $arrs[] = '$this->_linhas[' . $i . ']';
         }
      } else {
         $texto = preg_replace("/([^[:alpha:]])/i", "", strtoupper($this->_texto));
         $texto = explode(":%#%:", wordwrap($texto, COLUNAS, ":%#%:", 1));

         if (!count(array_filter($texto))) {
            return false;
         }
         
         foreach ($texto as $k => $linha) {
            preg_match_all("/\w/", $linha, $match);
            $this->_linhas[$k] = $match[0];
            $arrs[] = '$this->_linhas[' . $k . ']';
         }
      }

      $arraystring = implode(",", $arrs);
      eval("\$this->_colunas = array_map(null, $arraystring);");

      return true;
   }


   function _criarArrPalavras( )
   {
      $this->_palavra = explode(",", $this->_palavra);

      foreach ($this->_palavra as $k => $palavra) {
         $this->_palavra[$k] = preg_replace("/[^[:alpha:]]/", "", strtoupper(trim($palavra)));
      }

      $this->_palavra = array_unique($this->_palavra);
      return (count(array_filter($this->_palavra))) ? true : false;
   }
   
   
   function _getErro($msgErro)
   {
      die("ERRO: " . $msgErro);
   }
   
};
?>

Attached Files




#543820 Como Fazer Banner?

Posted by Felipe Pena on 27/02/2005, 01:27

O Front Page é uma ferramenta para desenvolver o site, com as funcionalidades de formatar textos, colocar tabelas, ou seja, trabalhar com o HTML em geral, inserir imagens.

Portanto, se queres fazer um banner, terás que utilizar programas relacionados a imagens que possui a opção de criar gif animado.

Sugiro:
Fireworks

Na seção de Fireworks creio que tenha tutorial a respeito de banners.

[]'s




IPB Skin By Virteq