Jump to content

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


RayBacK

Recommended Posts

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!

Link to comment
Share on other 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.

<3 life

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.