preg_replace sur le contenu d'un fichier php (je craque)

preg_replace sur le contenu d'un fichier php (je craque) - PHP - Programmation

Marsh Posté le 07-04-2007 à 17:34:27    

Bonjour,
 
Je commence à en avoir marre alors voici la situation : j'ai un fichier config.class.php contenant une classe Config dont un tableau clés => valeurs que je veux mettre à jour avec des données issues d'un formulaire :pt1cable:  
 
Le fichier en question (en gros):

Code :
  1. <?php
  2. /***********************************************************************
  3.   .....
  4. ************************************************************************/
  5. // Config class : contains all the directory's configuration
  6. // Provides methods to access and edit the info "in real time"
  7. class Config
  8. {
  9.   //private static $app_prefix;
  10.   private static $info = array('url_to_home'            => 'http://test.tld/',
  11.                                'use_gzip'               => true,
  12.                                'gzip_compression_level' => 5,
  13.                                'encoding'               => 'iso-8859-1',
  14.                                'name'                   => 'a name',
  15.                                'description'            => 'a description',
  16.                                'keywords'               => 'some keywords',
  17.                                'websites_by_page'       => 15,
  18.                                'theme_folder'           => 'default',
  19.                                'version'                => '1.2'
  20.                                );
  21.   public function get ($info)
  22.   {
  23.     return (isset(self::$info[$info])) ? self::$info[$info] : false;
  24.   }
  25.   ...
  26. }
  27. ?>


 
Donc je fais un truc comme ça :

Code :
  1. $config_content = file_get_contents(CLASS_PATH.'config.class.php');
  2. $keys_to_update = array('strings'  => array('url_to_home',
  3.                                             'encoding',
  4.                                             'name',
  5.                                             'description',  'keywords',
  6.                                             'theme_folder')
  7.                         'integers' => array('use_gzip',
  8.                                             'gzip_compression_level')
  9.                         );
  10. foreach ($keys_to_update['strings'] AS $key)
  11. {
  12.   if (isset($_POST[$key]) && (string)Config::get($key) != htmlentities(stripslashes($_POST[$key])))
  13.     preg_replace("!'$key'(\s+)=> '".Config::get($key)."'!", "'$key'\$1=> '".htmlentities(stripslashes($_POST[$key]))."'", $config_content);
  14. }
  15. foreach ($keys_to_update['integers'] AS $key)
  16. {
  17.   if (isset($_POST[$key]) && (int)Config::get($key) != (int)$_POST[$key])
  18.     preg_replace("!'$key'(\s+)=> ".Config::get($key).'!', "'$key'\$1=> ".$_POST[$key], $config_content);
  19. }
  20. echo $config_content;


...mais ça ne marche pas et bien qu'on entre dans les conditions ça ne remplace pas par les nouvelles valeurs  :cry:  
 
Un peu d'aide serait donc la bienvenue, surtout que les regexp et moi..... :whistle:


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
Reply

Marsh Posté le 07-04-2007 à 17:34:27   

Reply

Marsh Posté le 07-04-2007 à 19:29:59    

$config_content = preg_replace(...);
 
:D

Reply

Marsh Posté le 07-04-2007 à 19:34:15    

Le_nain a écrit :

$config_content = preg_replace(...);
 
:D


OMG :sweat: ou comment perdre 3 heures à chercher des failles dans mes regexp  :cry:  :cry:  
 
Merci à toi :lol:


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed