Ir para conteúdo
Fórum Script Brasil

davi.feo

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Sobre davi.feo

  • Data de Nascimento 18/04/1981

Contatos

  • MSN
    davi.feo@dsc.com.br

Perfil

  • Gender
    Male

davi.feo's Achievements

0

Reputação

  1. Olá Pessoal, Estou precisando configurar um banco de dados Informix na minha máquina local para estudar um Livro que faz a solicitação deste database. Consegui instalar o Banco de Dados Informix seguindo um passo a passo um tutorial que achei na net. O banco de dados já aparece como programa para o Windows, assim como o Mysql que tenho instalado. Para o database Mysql eu uso o PHPMYAMIN e/ou o HEIDISQL como ambiente de manipulação. Qual o melhor aplicativo para manipulação do banco Informix ? Desde já, muito obrigado.
  2. Agradecendo como sempre as EXCELENTES respostas do nosso GRANDE amigo Eserra ... alguém mais pode me ajudar... eu consegui gerar a estrutura que desejo... porem falta eu gerar o arquivo xml com um nome que precisa ser dinamico a cada geração... passo abaixo o codigo: Eu abro a pagina em php e aparece toda a estrutura do XML...mas preciso que o php exporte um arquivo xml dentro de um diretorio no servidor... como faço isso?? Obrigado pessoal...e o Eserra! :blush: Olá Luiz, sou iniciante em programação orientada mas tem uma classe super simples de implantar que gera dinãmicamente arquivos .xml segue : 1: xml_writer <?php /* * (English) * This file is part of filExp. * * filExp is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * filExp is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with filExp. If not, see <http://www.gnu.org/licenses/>. * *** * (Português) * Este arquivo faz parto do filExp. * * filExp é um software livre: você pode redistribui-lo ou modificá-lo * sob os termos da GNU General Public License como publicada pela * Free Software Foundation. * * filExp está sendo distribuido no intuito de ser útil, * mas SEM NENHUMA GARANTIA; sem jamais implicar em garantia por * COMÉRCIO ou USO PARA PROPÓSITOS PARTICULARES. Veja a * GNU General Public License para mais detalhes. * * Você deve ter recebido uma cópia da GNU General Public License * junto com o filExp. Caso contrário, visite <http://ww.gnu.org/license/> * */ /** * @author Wanderson Regis Silva <wanderson@wandersonregis.com> * @version 0.1.0.0 2009-04-10 */ /** * Gerenciador de nós do documento */ class xml_node { /** * @var string O nome deste nó */ private $node; /** * @var string O conteúdo interno do nó */ private $contents; /** * @var array Os parâmetros do nó */ private $params; /** * @var mixed Os subnós */ private $nodes; /** * Inicializa o nó, com nome e possível conteúdo * @param string $nodename Nome do nó * @param string $contents Conteúdo do nó */ function __construct($nodename, $contents = '') { $this->itialize($nodename, $contents); } /** * Inicializa o nó, com nome e possível conteúdo, útil para limpar o conteúdo ou em classes herdeiras * @param string $nodename Nome do nó * @param string $contents Conteúdo do nó */ function itialize($nodename, $contents = '') { $this->node = str_replace(" ", "_", $nodename); $this->contents = $contents; $this->nodes = array(); $this->params = array(); } /** * Modifica o conteúdo textual do nó * @param string $contents O conteúdo textual * @param boolean $replace Se é para sobrescrever o conteúdo anterior (true) ou adicionar ao fim (false) */ function alter_node_content($contents, $replace = true) { if($replace) $this->contents = $contents; else $this->contents .= $contents; } /** * Adiciona um novo parâmetro * @param string $nodename Nome do novo nó * @param string $contents Conteúdo textual do nó */ function add_param($param, $content = '') { $count = count($this->params); $this->params[$count][0] = str_replace(" ", "_", $param); $this->params[$count][1] = $content; } /** * Adiciona um novo subnó * @param string $nodename Nome do novo nó * @param string $contents Conteúdo textual do nó */ function add_node($nodename, $contents = '') { $this->nodes[] = new xml_node($nodename, $contents); } /** * Adiciona uma árvore já pronta de nós * @param mixed $tree Árvore de nós */ function add_node_tree($tree) { $this->nodes[] = $tree; } /** * Retorna o total atual de subnós dentro deste nó * @return int */ function get_nodes_count() { return count($this->nodes); } /** * Retorna todos os subnós do nó atual * @return array */ function get_nodes() { return $this->nodes; } /** * Retorna um nó específico, em caso de nó um inexistente, retorna false * @param int Índice do nó * @return mixed */ function get_node($nodenumber) { if($nodenumber >= $this->get_nodes_count()) return false; return $this->nodes[$nodenumber]; } /** * Retorna a versão textual da extrutura * @return string A extrutura XML gerada */ function get_text_node() { $text = "<" . $this->node; for($i = 0; $i < count($this->params); $i++) { $text .= " " . $this->params[$i][0] . "=\"" . $this->params[$i][1] . "\""; } $text .= ">\n"; $text .= $this->contents . ( ! empty($this->contents) ? "\n" : NULL); if($this->get_nodes_count()) { for($i = 0; $i < $this->get_nodes_count(); $i++) { $text .= $this->nodes[$i]->get_text_node(); } } $text .= "</" . $this->node . ">\n"; return $text; } /** * Retorna umma array contendo a extrutura * @return array A extrutura XML gerada */ function get_array_node() { $array['name'] = $this->node; for($i = 0; $i < count($this->params); $i++) { $array['param'][] = array( 'name' => $this->params[$i][0], 'value' => $this->params[$i][1] ); } $array['content'] = $this->contents; $array['nodes'] = array(); if($this->get_nodes_count()) { for($i = 0; $i < $this->get_nodes_count(); $i++) { $array['nodes'][] = $this->nodes[$i]->get_array_node(); } } return $array; } } /** * Constrói uma extrutura de arquivo XML */ class xml_writer extends xml_node { /** * @var string Arquivo de saída */ private $filename; /** * @var string Arquivo css de estilização */ private $css; /** * @var string Arquivo XSLT de estilização */ private $xslt; /** * Inicializa a extrutura, com o possível node de arquivo de saída, com nome e possível conteúdo, útil para limpar o conteúdo ou em classes herdeiras * @param string $filename Nome do arquivo de saída * @param string $mainnode Nome do nó * @param string $maincontent Conteúdo do nó */ function __construct($filename = 'xmlfile.xml', $mainnode = 'xmlnode', $maincontent = '') { $this->filename = $filename; parent::itialize($mainnode, $maincontent); $this->css = array(); $this->xslt = array(); } /** * Adiciona um arquivo css para estilização * @param string $filename Nome do arquivo */ function add_css($filename) { $this->css[] = $filename; } /** * Adiciona um arquivo xslt para estilização * @param string $filename Nome do arquivo */ function add_xslt($filename) { $this->xslt[] = $filename; } /** * Envia a extrutura gerada para a saída do navegador */ function send() { header("Pragma: public\n"); header("Expires: 0\n"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0\n"); header("Content-Type: text/xml\n"); header("Content-Disposition: attachment;filename=" . $this->filename . "\n"); echo "<?xml version=\"1.0\" charset=\"utf-8\"?>\n"; if(count($this->css)) { foreach($this->css as $css) echo "<?xml-stylesheet type=\"text/css\" href=\"" . $css . "\"?>\n"; } if(count($this->xslt)) { foreach($this->xslt as $xslt) echo "<?xml-stylesheet type=\"text/xsl\" href=\"" . $xslt . "\"?>\n"; } echo parent::get_text_node(); } /** * Grava a extrutura gerada para um arquivo */ function write() { $data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"; if(count($this->css)) { foreach($this->css as $css) $data .= "<?xml-stylesheet type=\"text/css\" href=\"" . $css . "\"?>\n"; } if(count($this->xslt)) { foreach($this->xslt as $xslt) $data .= "<?xml-stylesheet type=\"text/xsl\" href=\"" . $xslt . "\"?>\n"; } $data .= $this->get_text_node(); $file = @fopen($this->filename, "w"); if($file) { fwrite($file, $data); fclose($file); return true; } else return false; } } ?> 2.sample.php <?php // Este exemplo irá criar um arquivo xml com dados de países e algus de seus estados include_once 'xml_writer.php'; // Inicia o arquivo XML $mundo = new xml_writer("MUITOLOCO.xml", "GOSTOSAS"); // Adiciona primeiramente um país $mundo->add_node("NASuecia", "a Suecia tem mulheres fantásticas -- "); $mundo->add_node("NASuecia", "a Suecia é show-- "); // Adiciona o nó Brasil ao XML // setando um a um dos nós $mundo->add_node("Brasil", "O Brasil fica na américa latina"); // Pra pegar o último nó (neste caso o nó do Brasil), basta pegar a contagem de nós e subtrair 1 $brasil = $mundo->get_node($mundo->get_nodes_count() - 1); // Adicionando parâmetros $brasil->add_param("Capital", "Brasília"); $brasil->add_param("Idioma", "Português"); $brasil->add_param("Sigla", "BR"); // Adiciona nós (subnós) ao último nó criado // Adiciona o nó Minas Gerais ao nó Brasil $brasil->add_node("Minas Gerais"); $brasil_minas = $brasil->get_node($brasil->get_nodes_count() - 1); $brasil_minas->add_param("Capital", "Belo Horizonte"); // Adiciona o nó São Paulo ao nó Brasil $brasil->add_node("São Paulo"); $brasil_sampa = $brasil->get_node($brasil->get_nodes_count() - 1); $brasil_sampa->add_param("Capital", "São Paulo"); // Adiciona o nó EUA ao XML $mundo->add_node("Estados Unidos Da América"); $eua = $mundo->get_node($mundo->get_nodes_count() - 1); // Adicionando parâmetros $eua->add_param("Capital", "Washington"); $eua->add_param("Idioma", "Inglês"); $eua->add_param("Sigla", "EUA"); // Aqui o nó do estado será criado e só depois adicionado ao nó do país $eua_ny = new xml_node("Nova Iorque"); $eua_ny->add_param("Capital", "Nova Iorque"); $eua->add_node_tree($eua_ny); // Definindo um arquivo CSS para modificar a exibição $mundo->add_css("estilo.css"); // Podem ser adicionados tantos arquivos de estilo quanto forem necessários // A outra opção seria usar um arquivo XSLT para isso // Neste caso a sintaxe seria: // $mundo->add_xslt("stilo.xsl"); // Grava em um arquivo $mundo->write(); header('location: mundo.xml'); // Outras possibilidades: // // Enviar para a saída do navegador // $mundo->send(); // // Obter a forma textual do arquivo, sem o cabeçalho padrão // $mundo->get_text_node(); // // Obter a extrutura gerada em um array // $mundo->get_array_node(); ?> Faça um teste com a sua aplicação. Espero ter ajudado, qualquer problema retorne por favor.
  3. Olá Pessoal, Boa tarde, espero que tenham passado um bom feriado, Gostaria de saber se alguêm conhece a ferramenta BIRT da ECLIPSE ? Se posso usa-la com php ou é destinada a Java Apenas ? Trabalho com o NetBeans, posso configurar o BIRT sem montar um ambiente Eclipse, ou seja, instalar apenas a ferramenta de relatórios e não toda a IDE ? alguém tem algum exemplo de aplicação, apenas a titulo de visibilidade de como usar as classes da ferramenta? Desde já agradesço a cooperação de todos do forum.
  4. Olá pessoal, Estou muito interessado em entender como funciona a chamada de métodos de vários níveis, achei alguns exemplos navegando, mas nada que me fizesse entender de como funciona a logica, imagino que seja da seguite forma: funcUm()->funcDois()->funcTres() assim: funcTres é submetida ao retorno da funcDois que por sua vez, submetesse ao retorno da funcUm ou seja, o retorno da funcUm é determinante para o processamento da funcDois e assim por diante, ou apenas serve para estabelecer uma sequencia de chamadas e reter lin has no código. ou não é nada disso, estou mesmo meio perdido com esta logica. Valeu pessoal. :)
  5. Olá Pessoal estou criando uma Classe que chamo de TmontaQuery, seu metodo construtor não inicia nenhuma var ou métodos inscritos na classe. Minha duvida é : Como faço para acessar, a partir de um método, outros métodos da mesma classe exemplo: A Função campos(comentada) é uma tentativa do que eu preciso, ou seja, chamar um método da mesma classe com a var this, deve estar errado por total, é só para exemplificar. Se puderem me ajudar serei muito grato.
  6. Denis Muito Obrigado pela ajuda, consegui otmizar um banco mysql que mal subia em relatórios compostos de tabelas paralelas. Muito Bom mesmo, Obrigado.
  7. Olá pessoal do Scriptbrasil, O Scriptbrasil foi indicado por um amigo, também programador, como um excelente recurso naquelas horas em que queremos fugir para a Austrália com a roupa do corpo. Bom, sou novo no forum e desde já, claro, tenho uma duvida: Gostaria de Saber qual a necessidade real, ou seja, o "porque" usar indices em tabelas de dancos, seja o banco que for. Faço uso de php+mysql e tenho um sistema de agendamento que demora a caregar relatórios, os indices podem me ajura ? Muito obrigado :D
×
×
  • Criar Novo...