Ir para conteúdo
Fórum Script Brasil
  • 0

Executar arquivos


RSS

Pergunta

Olá pessoal, boa tarde a todos!

Sou iniciante em php e estou precisando de uma ajuda para agilizar um trabalho!

É o seguinte, tenho um diretório no meu site e recebe arquivos .php atualizados todos os dias, e para que eu atualize a base de dados eu preciso acessae um por um no browser!

Como posso fazer para que o php depois de ler o diretorio execute os arquivos .php ?

Muito obrigado!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Isso, é algo assim:

- Nesse diretório com os arquivos, eu tenho que acessar a pasta pelo browser, e ir acessando os arquivos .php um a um para que as informações que cada arquivo contem seja inserida no BD!

Esses arquivos são diariamente atualizados, e as vezes tem mais de 500 arquivos, e eu queria algo que fizesse tipo um acesso(execução) de cada arquivo, como se fosse um loop para que ele acesse(execute) os arquivos !

espero ter conseguido explicar, porque eu tenho a idéia na cabeça mas não consigo ter a menor idéia de como fazer e também explicar!

Obrigado!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0
Isso, é algo assim:

- Nesse diretório com os arquivos, eu tenho que acessar a pasta pelo browser, e ir acessando os arquivos .php um a um para que as informações que cada arquivo contem seja inserida no BD!

Esses arquivos são diariamente atualizados, e as vezes tem mais de 500 arquivos, e eu queria algo que fizesse tipo um acesso(execução) de cada arquivo, como se fosse um loop para que ele acesse(execute) os arquivos !

espero ter conseguido explicar, porque eu tenho a idéia na cabeça mas não consigo ter a menor idéia de como fazer e também explicar!

Kara, se você vai acessar o diretório pelo browser então você precisa de um index.php que irá ler qualquer outro arquivo.php na pasta e executá-lo, é isso ?

index.php

<?php
abstract class Main {
    /**
     * Número de erros encontrados
     * @var integer
     */
    static private $erros = 0;

    /**
     * Número de arquivos.php encontrados
     * @var integer
     */
    static private $total = 0;

    /**
     * Número de arquivos executados
     * @var integer
     */
    static private $executados = 0;

    /**
     * Arquivo que está sendo executado no momento
     * @var string
     */
    static private $current = "";

    /**
     * Substitui a saida pelo relatório de execução
     * @param string $buffer O buffer de execução
     * @return string
     */
    static public function handleBuffer( $buffer ){
        $ret = sprintf( "%d arquivos executados de um total de %d<br />%d erros<br /><br />" , self::$executados , self::$total , self::$erros );

        if ( self::$total != self::$executados ){
            $ret .= sprintf( "Execução interrompida no arquivo %s." , self::$current );
        }

        $ret = sprintf( "<html><head><title>%s executados.</title></head><body>%s</body></html>" , self::$executados ? self::$executados : "nenhum" , $ret );

        return( $ret );
    }

    /**
     * Trata os erros encontrados
     * @return boolean TRUE
     */
    static public function handleError(){
        ++self::$erros;

        return( true );
    }

    /**
     * Inicia a busca por todos os arquivos.php do diretório atual
     */
    static public function start(){
        $lista = array();

        set_error_handler( array( "Main" , "handleError" ) , E_ALL );

        if ( ( $dh = opendir( "." ) ) ){
            while ( ( $file = readdir( $dh ) ) ){
                if ( $file != "index.php" ){
                    $info = pathinfo( $file );

                    if ( $info[ "extension" ] == "php" ){
                        $lista[] = $file;
                    }
                }
            }

            closedir( $dh );

            self::exec( $lista );
        } else {
            printf( "Não foi possível abrir o diretório" );
        }
    }

    /**
     * Executa a lista de arquivos.php
     * @param array $lista Matriz que contém todos os arquivos.php encontrados no diretório
     */
    static private function exec( $lista ){
        ob_start( array( "Main" , "handleBuffer" ) );

        for ( $i = 0 , self::$total = count( $lista ); $i < self::$total; $i++ ){
            self::$current = $lista[ $i ];

            try {
                require( self::$current );
                ++self::$executados;
            } catch ( Exception $e ){
                ++self::$erros;
            }
        }

        header( "Content-type: text/html; charset=utf-8" , true , 200 );
        ob_end_flush();
    }
}

Main::start();

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia Neto!

Cara é exatamente isso que eu preciso e já fiz uns teste aqui!

Só que quando eu executo a página para execução dos arquivos do diretório ele traz essa resposta

0 arquivos executados de um total de 11

1 erros

Execução interrompida no arquivo ApeGera0003.php

Na resposta ele diz que foi interrompido no 3º arquivo, mas os anteriores também não foram executados, e a tabela não atualiza!

Estou tentando achar o erro mas não estou conseguindo!!

valeu!

Editado por RSS
Link para o comentário
Compartilhar em outros sites

  • 0
Execução interrompida no arquivo ApeGera0003.php

Na resposta ele diz que foi interrompido no 3º arquivo, mas os anteriores também não foram executados, e a tabela não atualiza!

Na resposta ele diz que foi interrompido no ApeGera0003.php e não no 3 arquivo, o código que lhe enviei executa conforme a listagem e não seguindo uma ordem pré-estabelecida.

O primeiro arquivo que ele tentou executar foi o ApeGera0003.php e encontrou um erro, por isso ele parou.

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Neto!

Entendi, depois eu coloquei o arquivo dentro do diretorio em que está os arquivos ele passou a executar somente o primeiro arquivo que ele encontra e diz que encontrou mais de 200 erros !

Mas mesmo que ele tenha dado erro percebi que ele gerou os dados que eu precisava, não confirmei, mas acho que não gerou por completo!

Graças a Deus e sua ajuda estou conseguindo um bom resultado!

Desculpe minha ignorância, mas há uma possibilidade de saber onde exatamente está acusando os erros?

Porque assim acredito que posso tentar corrigir!

Cara muito obrigado pela força e pasciência!

Valews!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...