• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

RayBacK

[PHP] Como fazer um install.php que altere as variáveis de um ficheiro

5 mensagens neste tópico

Boas,

Decidi criar um mini tutorial, para como criar um instal.php pois vi, um duvida do watt e acho que era isto que ele cria, e tambem como não sabia mexer muito bem neste assunto decidi aprender sobre isto e claro tambem queria partilhar o meu conhecimento com esta comunidade!

file: settings.php Um file de settings normalíssimo!

/******************************************************************************
* settings.php 
*                                                             
*******************************************************************************
* DATABASE SETTINGS                                            
*
******************************************************************************/

#####DATABASE SETTINGS#####
$server = '';
$database = '';
$user = '';
$password = '';

Simplesmente tem assim muitos comments para poderem ver que não atrapalha em nada!

file: install.php

//variaveis já predefinadas no settings.php que vao ser alteradas com um certo valor!
$vars = array(
       'database' => 'test',
       'user' => 'root',
       'password' => '',
       'server' => 'localhost',
   );

//executa a funcão updateFILE();
updateFILE($vars);

function updateFILE($vars) {
   $linhas = file('settings.php');
   //conta quantas linhas tem o ficheiro settings.php
   $n = count($linhas);
   for ($i = 0; $i < $n; $i++)
   {    
       //este for vai selecionar cada linha do file settings.php

       //elimina espaços desnecessarios no fim de cada linha
       $linhas[$i] = rtrim($linhas[$i]);

       foreach ($vars as $var => $val)
           //verifica se há alguma variavel para ser mudificada
           if (strncasecmp($linhas[$i], '$' . $var, 1 + strlen($var)) == 0)
           {
               //se houver mudifica com o seu novo valor!
               $linhas[$i] = '$' . $var . ' = \'' . $val . '\';';
               unset($vars[$var]);
           }
   }
   //abre o file settings.php
   $fp = fopen('settings.php', 'r+');
   //insere na primeira linha o 
   if (trim($linhas[0]) != '')
       fwrite($fp, "\n");

   $lines = count($linhas);
   for ($i = 0; $i < $lines - 1; $i++)
   {
       //este parte do script verifica se ha duas linhas "brancas" se houver so escreve uma!
       if ($linhas[$i] != '' || @$linhas[$i - 1] != '')
           fwrite($fp, $linhas[$i] . "\n"); #esta escreve as linhas todas no ficheiro
   }
   //escreve a ultima linha do ficheiro!
   //fecha o ficheiro!
   fclose($fp);
}

Espero que seja util, nem que seja para aprender!  :(

Criticas e Sugestões são sempre bem vindas!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom tópico.

Alterei o código para utilizar o GeSHi, assim vê-se melhor o código.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nice!

Uma duvida que nao tem nada a ver em relação ao post mas o que faz o "@" antes das funções? ja me deparei varias vezes com  tutorials onde estao "@'s" antes das funções e nunca encontrei nada a falar sobre elas! se alguem me explicar agradecia xD

qq das manieras bom post!

:(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma duvida que nao tem nada a ver em relação ao post mas o que faz o "@" antes das funções? ja me deparei varias vezes com  tutorials onde estao "@'s" antes das funções e nunca encontrei nada a falar sobre elas! se alguem me explicar agradecia xD

All PHP expressions can be called with the "@" prefix, which turns off error reporting for that particular expression.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ja viste o que seria teres um site duma empresa ou assim, haver algum erro e ver la tudo?

com isto nao ha esses probs

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora