Ir para conteúdo
Fórum Script Brasil

paulo_aa

Membros
  • Total de itens

    43
  • Registro em

  • Última visita

Posts postados por paulo_aa

  1. Eu usei @ para que o PHP não exiba erros ou alertas ao usuário ao executar a função. Não é necessário já que eu igualei a uma variável.

    Aqui acabei botando por descuido(costume de colocar quando não atribuo as funções à variáveis). :D

    O cara pediu uma função de COPIAR o arquivo, e não de TRANSFERIR o arquivo.

    Se apagar o arquivo base noc aso dele vai ser mutio mais trabalhoso pois pelo que entendi ele vai criar vários diretórios novos, e aí se eu apagar o original vai dar mais trabalho para ele colocar o novo caminho do arquivo para copiar novamente. B)

  2. este script é o que copia um arquivo:

    <?php
    
    // Na linha abaixo defina o caminho para o arquivo que você quer copiar. Se este script estiver rodando na mesma pasta do arquivo não precisa colocar o http://www.seusite.com/
    $arquivo = 'http://www.seusite.com/teste.htm';
    
    // A linha baixo define o diretório onde você quer colocar uma cópia do arquivo acima. Se este script estiver rodando na mesma pasta do arquivo não precisa colocar o http://www.seusite.com/
    // Esta pasta tem que ter permissão de escrita(no caso de servidor UNIX/LINUX) para poder o script funcionar.
    $nova_pasta = 'http://www.seusite.com/novo';
    
    $copia_arquivo = @copy($arquivo, $nova_pasta . "/" . $arquivo);
    if ($copia_arquivo) {
    
    echo 'Arquivo copiado com êxito';
    
    } else {
    
    echo 'Erro copiando arquivo.';
    
    }
    
    ?>

    Qualquer coisa, manda as ordi. :)

  3. Olá.

    Eu tenho uma função básica de INNER HTML e passo para ela apenas 2 parâmetros:

    minha_funcao(url,tipo) {

    ...conteúdo da função...

    }

    Eu queria passar mais 1 parâmtero no final, e esse parâmetro terá o nome de uma função que eu quero que seja executada. :o

    Não assim:

    minha_funcao(url,tipo,func) {

    ...conteúdo da função...

    outra_funcao(func)

    }

    E sim eu queria que a função que ao invés de uma função fixa, minha_funcao chamasse a função que tem o nome do parâmetro func . ;)

    Por ex:

    Se eu passasse no parâmetro func o valor rodaapos eu queria que a função rodaapos() (já definida em outro lugar do script lógico) fosse chamada.

    Eu fuçei em 2 protoypes que eu peguei na net que eu sei que executam essa coisas mas não consegui achar a parte do código que faz isso.

    Alguém pode ajudar-me?

    Desde já, muito obrigado. :)

  4. Fala cara. Consegui!!!!!!!!!!!!!!! :D

    Fiz uma classe do jeito que eu queria, com todas as funções inclusive nivel do diretório. :P

    Eu fiz com base na função que eu disse que tinha começado.

    Achei que ficou ótima a classe, só 3 funções, inclusive tem construtor pra com apenas 1 linha de código já rodar a classe.

    E o mais importante pra mim: foi do meu esforço, não desisti, fui atrás, consegui. :rolleyes:

    Lá vai ela:

    <?php
    
    /*
        +------------------------------------------+
        |  Sistema que monta árvore de diretórios  |
        +--                                      --+
        |  Sistema desenvolvido em: PHP            |
        +------------------------------------------+
        |  @access        restrict
        |
        |  @author        Paulo Afonso Alcântara
        |
        |  @contact        pauloafonsowd@hotmail.com
        |
        |  @package        WIMAJAX!
        |
        |  @version        0.1.0.0
        |
        |  @released    02.08.2006
        |
        +------------------------------------------+
        |
        | -> Esta classe é de uso livre, mas deve-se manter os créditos do autor(estão logo acima)
        | e deixar versões baseadas/derivadas desta para uso livre.
        |
        | -> Ainda não testada em PHP 5x. Se você é um usuário autorizado e quizer testar no PHP 5x,
        | por favor me informe como este sistema se sai nesta nova versão do PHP.
        |
        | -> Se você leu até aqui, obrigado.  :)
        |
        +------------------------------------------+
    */
    
    /*
        +-- Este arquivo: --+
        |
        | @name        ArvorePastas_class3.inc.class.php
        |
        | -> Este arquivo contém uma classe que cria uma árvore de diretórios.
        |
        +-------------------+
    */
    
    $grupo_de_diretorios = "galerias";
    
    if ( isset($_GET['gru']) and $_GET['gru'] != "" ) {
    
        $grupo_de_diretorios = $_GET['gru'];
    
    }
    
    // ********** COMEÇO DA CLASSE "ArvorePastas" **********
    class ArvorePastas{
    
        function ArvorePastas($diretorio="",$nivel=-1) {
            $this->diretorio = $diretorio;
            $this->nivel = $nivel;
            $this->barra = DIRECTORY_SEPARATOR;
            if ( !empty($this->diretorio) ) {
                $this->LerPasta($diretorio,$nivel);
            } else {
                return false;
            }
        }
    
        function LerPasta($nome_dir,$nivel) {
    
            if ( isset($nome_dir) ) {
                // O Diretorio especificado é aberto com extensão DIR do php
                $grupo = dir($nome_dir) or die("Erro: Diretório solicitado inexistente!");
    
                // Inicia um contador/iterador em zero(que é o número padrão inicial em arrays no php)
                $i_g = 1;
            
                $lista_grupo = Array();
                while (false !== ($grupo_file = $grupo->read())) {
                    if( $grupo_file != "." and $grupo_file != ".." and is_dir($nome_dir . $this->barra . $grupo_file) ) {
                        $lista_grupo['abs'][$i_g] = $nome_dir . $this->barra . $grupo_file;
                        $lista_grupo['rel'][$i_g] = $grupo_file;
                        $lista_grupo['niv'][$i_g] = $nivel + 1;
                        $i_g++;
                    }
                }
                $grupo->close();
            
                if ( isset($lista_grupo['rel']) and isset($lista_grupo['abs']) and is_array($lista_grupo['abs']) and count($lista_grupo['abs']) >= 1 ) {
                    $this->ExibePasta($lista_grupo['abs'],$lista_grupo['rel'],$lista_grupo['niv']);
                    return $lista_grupo;
                } else {
                    return "Erro na leitura dos dados.";
                }
            
            } else {
                return "Erro na leitura dos dados.";
            }
    
        }
    
        function ExibePasta($caminho_dir=0, $nome_dir=0, $nivel_dir=0) {
    
            if ( is_array($caminho_dir) and is_array($nome_dir) and is_array($nivel_dir) and count($caminho_dir) >= 1 ) {
                $i_gb = 1;
                while ($i_gb <= count($caminho_dir)) {
                    echo "Nível do diretório: " . $nivel_dir[$i_gb] . " ";
                    for ($i=$nivel_dir[$i_gb]; $i > 0; $i--) {
                        echo "_";
                    }
                    echo '<a href="' . $caminho_dir[$i_gb] . '" title="' . $caminho_dir[$i_gb] . '">' . $nome_dir[$i_gb] . '</a>';
                    echo "<br />";
                    $this->LerPasta($caminho_dir[$i_gb],$nivel_dir[$i_gb]);
                    $i_gb++;
                }
                unset($i_gb);
                return "Sucesso na realização.";
            } else {
                return "Erro na leitura dos dados.";
            }
    
        }
    
    }
    // ********** TÉMINO DA CLASSE "ArvorePastas" **********
    
    echo "<strong>Grupo de diretórios(diretório pai): " . $grupo_de_diretorios . "</strong><br />";
    
    $arvoreteste = new ArvorePastas($grupo_de_diretorios);
    
    ?>

    É só salvar o código numa página com algum nome e extensão *.php e rodar.

    Ah, passem o nome do diretório a ser lido via get. O nome da variável é "gru"(sem aspas).

    Valeu a todo o pessoal, e principalmente ao David. Valeu.

    :D

    - Edit -----------------------------------------------------------------------------------------------

    Modificação na função EXIBEPASTA: a linha onde havia echo $caminho_dir[$i_gb]; foi substituída por

    echo '<a href="' . $caminho_dir[$i_gb] . '" title="' . $caminho_dir[$i_gb] . '">' . $nome_dir[$i_gb] . '</a>';

    Valeu.

  5. valeu cara mas não funcionou não. :unsure:

    Eu começei uma função do zero (esse outra aí de cima é adaptada da classe de outro cara) mas o problema é que aminha só lê os diretórios dentro do diretório especificado ma snão lê os diretórios dentro desses diretórios e todos os filhos dos diretórios filhos e etc...

    Eu quero uma árvore de todos os diretórios que existem dentro de um diretório a ser especificado e aí ele retorna todos os diretórios com o seu nome, o seu caminho(em relação ao diretório especificado para leitura) e sua profundidade(também relativa ao diretório especificado para leitura).

    Eu não estou em casa agora, mas quando eu chegar eu posto a função que comecei aqui pra ver se me ajudas a colocar ela pra funcionar como eu quero. B)

    Cara valeu pela ajuda. :)

  6. Resolveu não cara.

    Testei colocando no inicio de cada função pra ir testando ma snão pegou de nehum jeito.

    EM qual função e em qual lugar você diz que é pra colocar esse código aí?

  7. Valeu essa dica do DIRECTORY_SEPARATOR mas o pessoal não entendeu muito bem o que eu estou querendo.

    Aquela variável $filename que eu quero está num LOOP então na verdade ela tem vários valores. O que eu queria era colocá-la no array(da mesma forma que $nome ) para poder recuperar seus valores na segunda função, para aí poder usar $filename com seu $nome correspondente.

    Será que alguém consegue me ajudar. :unsure:

  8. Na primeira função da classe abaixo eut enho uma variável que desejaria recuperá-la para montar links na segunda função, mas não consigo pois é um array multidimensional e eu não consigo trabalhar.

    Tem explicado a variável e o que eu desejo no meio da classe.

    ----------------------------------------------------------------------------------------------------------------------------

    if (PHP_OS == "WIN32") {

    define("BARRA", "\\");

    } else {

    define("BARRA", "/");

    }

    class ArvoreDiretorios {

    function executa($diretorio)

    {

    $array_dados = ArvoreDiretorios::lerDiretorio($diretorio);

    ArvoreDiretorios::mostraArvore($array_dados, 0);

    }

    /**

    * Esta função lê o diretório passado e pega o espaço total

    * ocupado pelos arquivos e diretórios, retornando tudo em um

    * array

    *

    * @author Silvano Girardi Jr. <sgj@dr.com>

    */

    function lerDiretorio($nome)

    {

    $retorno = array();

    if ( isset($nome) ) {

    $handle = @opendir($nome);

    if (!$handle) {

    return "Não foi possível abrir o diretório";

    }

    $tamanho = 0;

    while($filename = readdir($handle)) {

    if ( $filename != "." && $filename != ".." && is_dir($nome.BARRA.$filename) && $filename != "peqs" ) {

    //Nessa altura aqui eu já tenho a variável $filename que eu queria mandá-la pra o array e recuparar na segunda função dessa classe

    $temp = ArvoreDiretorios::lerDiretorio($nome.BARRA.$filename);

    if ( is_array($temp) ) {

    if ( !isset($retorno[$nome]) or !is_array($retorno[$nome]) ) {

    $retorno[$nome] = array();

    }

    $retorno[$nome] = array_merge($retorno[$nome], $temp);

    } else {

    $tamanho += $temp;

    }

    }

    }

    closedir($handle);

    if ( !isset($retorno[$nome]) or !is_array($retorno[$nome])) {

    $retorno[$nome] = array();

    }

    array_push($retorno[$nome], number_format($tamanho, 2, ".", ","));

    return $retorno;

    } else {

    return "Erro. Não foi possível varrer o(s) diretório(s).";

    }

    }

    /**

    * Esta função é uma modificação da versão apresentada nos comentários

    * da função dir() no site php.net/dir por 'de\kibo\niels'

    */

    function mostraArvore ($array_dados, $profundidade) {

    //Eu queria recuperar a variável $filename aqui

    foreach ($array_dados AS $nome => $tamanho) {

    if (is_array($tamanho)) {

    for ($i = 0; $i < $profundidade - 1; $i++) {

    echo "<span class='espaco'> </span>";

    }

    De modo a trabalhar com ela e o $nome correspondende a ela aqui

    echo "<span class='principal'><a href='" . $nome . "'>" . $filename . "</a></span><br />";

    echo "\n";

    $profundidade++;

    ArvoreDiretorios::mostraArvore($tamanho, $profundidade);

    $profundidade--;

    }

    }

    }

    }

    ----------------------------------------------------------------------------------------------------------------

    Se alguém puder me ajudar eu ficaria muito grato.

    Obrigado desde já. :)

  9. Recebe sim senhor!

    Ou seu script está com erro ou então seu Hotmail está identificando erroneamente as mensagens vindas do form. como Lixo Eletrônico.

    Veja lá, a sua pasta de Lixo Eletrônico do Hotmail. Se não estiver lá é porque seu script tem erro(s).

    Vê e responde aí pra ver se era isso mesmo. B)

  10. Olá, eu tou com um problema aqui para criar uma função. Eu preciso 'pegar' tudo que está entre determinadas tags e colocar dentro de uma variável.

    É mais ou menos assim:

    Eu tenho um código HTML que é lido em uma variável. Nesse código HTML tenho uma espécie de "tag" especial que eu inclui como comentário. Essa tag é no modelo seguinte:

    <!--#=> arquivo.css[]arquivo.php[]arquivo.php #<=-->

    Pois bem eu queria um código que fizesse uma busca na minha variável (que armazena o código HTML) e retornasse tudo que está entre <!--#=> e #<=--> em outra variável. Como seria essa busca? Alguém dá alguma dica ou posta um código de exemplo aí.

    Obrigado desde já. :)

    ass: Paulo Afonso

  11. É, a dica do Mestre não funcionou.

    O servidor está configurado para aceitar sessions sim, pois quando eu executo a página direto(colocando o endreço direto pra ela na barra do navegador) não dá esse erro.

    O erro só aparece quando eu chamo ela pra dentro de outra página por meio de um INCLUDE. Mas o erro mesmo assim não deveria aparecer pois o INCLUDE está antes de tudo na outra página. sad.gif

    Se algué puder ajudar, era de grande importãncia.

  12. Cara não surtiu efeito.

    Eu tentei tanto colocando esses códigos na página LOGIN.PHP como tentei colocar nas outras páginas que dão INCLUDE no LOGIN.PHP mas mesmo assim nada.

    lembrando que eu tenho vários ECHO na página LOGIN.PHP, tipo:

    echo "código html aqui";

    echo "mais código html aqui logo seguido ao anterior";

    echo "mais html aqui";

    Esses echos todos seguidos.

    Qual será o problema? sad.gif

  13. É o seguinte: eu tenho uma aplicação em PHP que eu estou faendo, nela tem um sistema de login baseado em SESSION.

    Tem um arquivo chamado LOGIN.PHP que na 2ª linha(segunda porque a primeira é <?php) antes de qualquer coisa do código, tem o bendito: session_start();

    Esse arquivo LOGIN.PHP é chamado pelas outras páginas da aplicação por um INCLUDE, include esse que está logo na 2ª linha das outras páginas.

    O problema é que quando eu rodo alguma página(uma que dá include no LOGIN.PHP) ela apareçe normal mas dá o erro:

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/paulopaw/public_html/te/p/admin.php:1) in /home/paulopaw/public_html/te/p/login.php on line 2

    Mas se eu rodar o LOGIN.PHP direto não dá o erro. Só que eu preciso rodar o LOGIN.PHP pelas outras páginas, porque essa é a utilidade dele.

    Como eu contorno esse erro? Ele não tem lógica, já que meu SESSION_START está antes de todo o resto do código. unsure.gif

    Eu já tentei colocar o session_start(); nas páginas que dão include no LOGIN.PHP, antes mesmo da linha do include, mas mesmo assim o erro persiste.

    Alguém tem alguma dica? sad.gif

  14. Hei, tipo eu tenho o PHPMyAdmin e sei usá-lo para restaurar os BDs, mas o problema é que eu queria um sistema pra por numa página PHP, pra que o usuário do sistema que estou desenvolvendo, possa ele mesmo restaurar o BD que foi criado com o script de bachup(esse eu já tenho e ele faz um arquivo .sql com o BD).

    E então há algum esquema que alguém aí tenha pra restaurar? Tipo uma caixa de seleção de arquivo pro usuário selecionar o arquivo .sql em seu micro e daí o script pega esse arquivo e restaura o BD. Alguém sabe como?

    Obrigado desde já. smile.gif

  15. Olá, estou com uma duvidazinha simples. Eu baixei um script que faz o backup de um BD MySQL e grava no formato de arquivo .SQl no meu servidor.

    Está tudo funcionando mas eu estou com uma dúvida: e pra restaurar esse BD? COmo eu coloco o conteudo do arquivo .SQL em uma query pra poder restaurar?

    Eu sei que é algo assim:

    $sql = "";
    $restaurar = mysql_query($sql) or die (mysql_error());
    

    Aí é que está: como eu faço pra colocar na $sql o conteúdo do arquivo .SQL (criado com o script)? Se alguém puder ajudar ficaria muito grato.

  16. Cara pra pegar do jeto que você quer aí fica meio difícil, você vai ter que provavelmente usar EXPLOTE pra verificar em qual dos resultados o ultimo caractere(o numero) é maior e tals. Vai ser meio complicado. Se quizer ter uma base vai lá no http://www.php.net e pesquisa sobre EXPLODE .

    Agora um jeito mais fácil seria você adicionar um campo chamado "id" (sem aspas) com AUTO_INCREMENT na sua tabela, e assim, ficaria mais fácil você saber quem é o maior de depois era só somar o maior com 1 pra chegar onde você quer. biggrin.gif

    OBS:

    =====================================

    Exemplo de explode:

    -------------------------------------------------------------------

    $resultado = "000002/PV1";

    $numerodofinal = strtolower(end(explode('V', $resultado)));

    =====================================

    =====================================

    Somar valores:

    ------------------------------------------------------------------

    $numerosomado = $numerodofinal + 1;

    =====================================

    Exemplo de código:

    <?php
    
    $resultado = "000002/PV1";
    $numerodofinal = strtolower(end(explode('V', $resultado)));
    $numerosomado = $numerodofinal + 1;
    
    echo $numerosomado;
    
    ?>

  17. Olha eu estou tentando adaptar esse código aqui. mas num consigo fazer ele paginar os resultados.

    <?php

    // +--------------------------+

    // |    Paginação            |

    // +--------------------------+

    $pgnacao_total = $total_arquivos;

    if(!isset($_GET["pgnacao_pgatual"])) { $pgnacao_pgatual = 0; }

    $pgnacao_limite = 5;  //quantidade de resultados por página

    $pgnacao_num = ceil($pgnacao_total / $pgnacao_limite);

    $pgnacao_paginas = ceil($pgnacao_total / $pgnacao_limite) - 1;

    $pgnacao_inicio = $pgnacao_pgatual * $pgnacao_limite;

    // +--------------------------+

    // |    Paginação - FIM      |

    // +--------------------------+

    global $total_arquivos, $tamanho_total;

    $path = 'C:\AppServ\www';  //pasta onde estão as fotos para ser listadas

     

    if ($dir = opendir($path)) {

     

      while (false !== ($file = readdir($dir))) {  //eu acho que aqui é que deveria estar acontecendo a paginação mas num sei fazer

       

        if (is_file($path."/".$file)) {          // ########## ifi ISDIR - INICIO ##########

            $tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";

            $filesize = $tab . '(' . filesize ($path.'/'.$file) . ' bytes)';

            echo "<li>" . $file . $filesize . "</li>";

            $tamanho_total = $tamanho_total + filesize ($path.'/'.$file);

            $total_arquivos++;

        } else {          // ########## ifi ISDIR - MEIO ##########

     

        }          // ########## ifi ISDIR - FIM ##########

      }

      closedir($dir);

    }

    $tamanho_total = round($tamanho_total / 1024 / 1024, 2);

    echo"<br><br>

    <b>Total de Arquivos</b> - $total_arquivos arquivo(s)<br>

    <b>Tamanho da Pasta</b> - $tamanho_total MB<br>

    ";

    // +--------------------------+

    // |    Paginação 2          |

    // +--------------------------+

    if($pgnacao_pgatual > 0) {

      $pgnacao_menos = $pgnacao_pgatual - 1;

      $pgnacao_url = $_SERVER["PHP_SELF]."?pgnacao_pgatual=".$pgnacao_menos;

      echo "<a href=\"$pgnacao_url\">Anterior</a>";

    }

    for($pgnacao_i = 0;$pgnacao_i < $pgnacao_num; $pgnacao_i++) {

      $pgnacao_url = $_SERVER["PHP_SELF"]."?pgnacao_pgatual=.$pgnacao_i;

      echo " | <a href=\"$pgnacao_url\">$pgnacao_i</a>";

    }

    if($pgnacao_pgatual < $pgnacao_paginas) {

      $pgnacao_mais = $pgnacao_pgatual + 1;

      $pgnacao_url = $_SERVER["PHP_SELF]."?pgnacao_pgatual=".$pgnacao_mais;

      echo " | <a href=\"$pgnacao_url\">Mais</a>";

    }

    // +--------------------------+

    // |    Paginação 2 - FIM    |

    // +--------------------------+

    ?>

  18. Cara, tipo não entendi esse esquema que você explicou aí.

    Tipo, eu queria um sistema que LISTASSE os arquivos de um diretório. Só que nesse diretório só vai ter FOTOS, e por isso eu quero listá-las, justamente pra fazer umm GALERIA DE FOTOS.

    Mas eu queria que pra cada arquivo listado o sistema criasse uma IDENTIFICAÇÃO, pra que eu pudesse paginar os resultados.

    Eu também não queria usar um sistema de galeria de fotos já existente pois eles se baseiam nos PREFIXOS e na continuidade do nome das fotos do tipo: foto01, foto02, ... , foto010, etc. porém as fotos que eu quero que sejam listadas nunca vão estar numa ordem lógica como a acima e por isso preciso de um sistema que liste os arquivos(no meu caso as fotos) do diretório.

    O que eu quero é basicamente um SISTEMA DE LISTAR ARQUIVOS E PASTAS(como os que já existem aqui no fórum) COM PAGINAÇÃO DE RESULTADOS.

    Será que alguém tem alguma dica?

    Obrigado desde já. smile.gif

  19. Tipo, não é pra atribuir um valo a cada Arquivo e gravar no banco não.

    Eu queria uma lógica de programação que para cada 'arquivo' listado do diretorio(nome de arquivo) ele atribuísse um valor, pois assim eu poderia fazer uma paginação e um sistema de fotos do jeito que eu queria.

  20. aproveitando o tópico, eu tenho uma dúvida da mesma área:

    como listar os arquivos de um diretório, atribuindo 1 número a cada arquivo.

    tipo numa página PHP ele lista os aquivos(até aqui eu consigo fazer) e a cada arquivo ele atribui um número.

    tipo:

    -------------------------------

    foto_1223 => 1

    imagem_xcd => 2

    arquivo_tals => 3

    e assim por diante.

    -------------------------------

    eu queria fazer isso pra poder paginar a exibição dos arquivos do diretório. Tem outra forma de fazer essa paginação? Eu echei essa minha idéia bem simples, e fica fácil de paginar. Se tiver outra forma alguém pode dizer como ou dar um link pra algum exemplo que tenha isto?

    obrigado desde já. smile.gif

  21. Não é bem isso. Eu queria uma forma de identificar se o "arquivo" que o usuário "escolheu" existe mesmo. Tipo ele pode não escolher nenhum arquivo e clicar para enviar, ou ainda, ele pode digitar somente "kkkkkk" no campo de arquivo e clicar em ENVIAR.

    Aí eu queria uma forma de saber se existe mesmo o arquivo "escolhido" pelo usuário da página. Ficou mais claro? Ou eu compliquei mais?

    Dá pra alguém me ajudar?! biggrin.gif

×
×
  • Criar Novo...