Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25
  1. #1

    [PHP] Scrivere variabili in config.php

    Ciao a tutti,

    Dunque, dovrei fare una pagina che permetta di modificare i valori di un file config.inc.php....

    Il file ha una struttura simile:

    Codice PHP:
    <?php
    $config
    ['sito']="prova";
    $config['url']="http://www.sito.it";
    Ovviamente con molte righe......

    Potrei fare una pagina con un form e per ogni textbox il valore relativo alla variabile, il problema è COME ?

    e poi mi servirebbe la funzione che permetta appunto di modificare il singolo valore.... come potrei fare ?

    P.s. non coviene scrivere l'intero file in quanto sono davvero parecchie variabili...

    Helpatemi =)
    Grazie anticipatamente.

  2. #2
    usare una tabella mysql?? magari con solo 3 campi id,nome,valore potrebbe semplificare molto le cose. Altrimenti devi agire su un file, ma in quel caso leggi e riscrivi tutto il file, a meno che scrivi un wrapper specifico
    LittleChe

  3. #3
    Naa, voglio proprio scrivere sul file ..... niente DB....

    Qualche mese fa avevo letto un tizio su un forum a cui avevano dato un pezzo di codice per scrivere determinati valori su determinate variabili ..... ma non lo trovo più miseriaccia!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    Allora se vuoi scrivere su un file devi usare alcune funzioni come fopen("Nomefile.php", SPECIFICARE);
    Poi devi per scrivere nel fil usare la funzione fwrite();
    Ti scrivo un pezzo di codice come esempio :
    Codice PHP:
    <?php  
    $file 
    fopen("scritto.php""r+"); //Apro il file e tramite r+ lo leggo
    fwrite($file"Ciao"); //Scrivo il file con la parola Ciao
    ?>
    Maggiori Info :
    Su fopen() : http://php.net/manual/en/function.fopen.php
    Su fwrite() : http://it.php.net/manual/en/function.fwrite.php

  5. #5
    So scrivere nel file, la richiesta è un'altra.....
    Voglio modificare i valori delle variabili scritte nel file php

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    323
    No, ci provai anche io non puoi sovrascrivere in una variabile, almeno io tempo fa ci provai, ma mi sembra che non si possa fare...

  7. #7
    Allora usa uno schema di questo tipo:

    • Il file config.php deve avere una formattazione ben precisa.
      E.g.:
      Codice PHP:
      [$var1 "value1";
      $var2 "value2"
      $var3 "value3" 
      In questo esempio le avriabili sono nel formato $nomevariabile="valore";
    • Secondo passo è creare un wrapper, quindi una classe che aiuterà a gestire il tutto. Ad esempio potresti fare una classe come questa:
      Codice PHP:
      class Config{
          function 
      __construct()
          {
      /*
               apri il file config.php con le varie funzioni di 
               php poi fai un explode su \n e poi su '='
            */
          
      }
          function 
      get_var($nome_var)
          {
              return 
      $this->vars[$nome_var]
          }
          function 
      set_var($nome_var,$value)
          {
               
      $this->vars[$nome_var]= $value 
          
      }
          function 
      save_config()
          {
            
      $stringa = array();
            foreach(
      $this->vars as $var)
              
      $stringa[] = implode("=",$var);
            
      $stringa implode('\n',$stringa);
            
      /*metodi php per salvare un file*/
          
      }


    Spero che sia chiaro
    Ciao
    LittleChe

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    direi che c'è un pò di confusione in merito, e forse non si conoscono tutti gli strumenti....


    vuoi un file di configurazione dinamico?

    hai 3 strade:

    il tuo file in php
    ...

    il tuo file INI
    http://it.php.net/manual/en/function.parse-ini-file.php
    http://it.php.net/manual/en/function...ini-string.php

    il tuo file in CSV
    http://it.php.net/manual/en/function.str-getcsv.php
    http://it.php.net/manual/en/function.fgetcsv.php


    personalmente ti consiglio o INI oppure CSV.

    non perchè siano più belli, ma perchè sono files che hanno strutture ben definite, ne carichi la configurazione con 2 righe di codice, e riesci a gestirli molto ma MOLTO meglio :-)
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Se poi ti interessa il codice e punto

    codice:
    <?php
    function CambiaValore($nomeVar,$nuovoVal,$nomeFile){
        $strV=explode("\n",file_get_contents($nomeFile));    
        $strO="";
        foreach ($strV as $str) {
            if(($posI=strpos($str, "['$nomeVar']"))!==false)
                $str=substr($str,0, $posI+strlen($nomeVar)+4)."=\"$nuovoVal\";\n";
            else
                $str.="\n";
            $strO.=$str;
        }
        file_put_contents($nomeFile, $strO);
    }
    
    CambiaValore("sito","altronome","config.php");
    CambiaValore("url","http://chebellocambiare.it","config.php");
    ?>
    eccolo qua fresco fresco appena scritto. Non è il massimo dell'ottimizzazione ma funziona

    Occhio ad inserrie nuovi valori che contengono doppi apici, va prima fatto l'escape!!! Altrimenti il file PHP del config avrà degli errori!

  10. #10
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    ti posto la funzione che non sbaglia sui doppi apici
    codice:
    function CambiaValore($nomeVar,$nuovoVal,$nomeFile){
        $nuovoVal=str_replace('"', '\"', $nuovoVal);
        $strV=explode("\n",file_get_contents($nomeFile));    
        $strO="";
        foreach ($strV as $str) {
            if(($posI=strpos($str, "['$nomeVar']"))!==false)
                $str=substr($str,0, $posI+strlen($nomeVar)+4)."=\"$nuovoVal\";\n";
            else
                $str.="\n";
            $strO.=$str;
        }
        file_put_contents($nomeFile, $strO);
    }
    
    CambiaValore("sito","Sito \"Troppo\" Figo","config.php"); //caso particolare
    CambiaValore("url","http://chebellocambiare.it","config.php");

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.