SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 29.07.2009, 11:22:50
scraddy scraddy ist offline
Anfänger
 
Registriert seit: Jun 2008
Alter: 37
Beiträge: 9
mit regulärem ausdruck variable ändern

hallo comm,

ich stehe gerade etwas auf dem schlauch, was einen regulären ausdruck angeht. folgende situation:

es gibt eine datei settings.php:
PHP-Code:
<?php
$SETTINGS
['show_after_login'] = 0;
$SETTINGS['font_size'] = 1;
$SETTINGS['number_of_rows'] = 50;
?>
ich habe nun vor in dieser datei die werte der variablen zu ändern. dazu möchte ich gerne preg_replace verwenden.

PHP-Code:
$settings_file preg_replace("#(\$SETTINGS\['font_size'\].?\=.?).*(;)#""$1".$wert."$2"$settings_file); 
in die variable
PHP-Code:
$settings_file 
wurde vorher die datei per
PHP-Code:
get_file_contents 
geladen.

leider funktioniert das so nicht. vielleicht kann mir einer von euch sagen, wie man soetwas am besten macht. danke schonmal

gruß, markus
Mit Zitat antworten
  #2  
Alt 29.07.2009, 11:34:53
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: mit regulärem ausdruck variable ändern

Der falsche Weg...

Warum?
1. du verwendest (scheinbar) globale Variablen.
2. selbstmodifizierender Code hat so seine eigenen Probleme(Tücken)
4. es gibt "schönere" Methoden konfigurationen zu bearbeiten

ini oder xml Dateien
Wenn du auf dein $SETTINGS beharren möchtest, dann gibts auch noch var_export()


PS:
Eigene Variablen schreibt man klein

Geändert von DokuLeseHemmung (29.07.2009 um 11:38:35 Uhr)
Mit Zitat antworten
  #3  
Alt 29.07.2009, 12:17:59
scraddy scraddy ist offline
Anfänger
 
Registriert seit: Jun 2008
Alter: 37
Beiträge: 9
AW: mit regulärem ausdruck variable ändern

danke für die schnelle und aussagekräftige antwort.

ich hatte schon gelesen, dass php extra funktionen für ini dateien bereit stellt.
ok, eigene variablen schreibt man klein, das habe ich auch schonmal gehört.

in diesem fall habe ich es mir etwas bei dem cms redaxo abgeschaut ;-).

naja, es ist eine art pseudo globale variable. da die datei, die die variable definiert, am anfang der index included wird, kann man das so sehen.

ich habe mich schon durch etliche google-suchergebnisseiten gewühlt, aber leider nichts über die "schönen methoden" gefunden. kennst du eine schöne methode um solche werte zu speichern?

sonst werde ich wohl doch zu einer xml-datei greifen, weil mir das am einfachsten erscheint, dank simplexml.

ich denke solche werte in einer zeile einer datenbanktabelle zu speichern ist auch overkill, oder?

Geändert von scraddy (29.07.2009 um 12:20:10 Uhr)
Mit Zitat antworten
  #4  
Alt 29.07.2009, 12:35:22
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: mit regulärem ausdruck variable ändern

Ich habe in meiner Gabbelkiste eine Klasse, welche das Registry Design Pattern implementiert. Evtl. kannst du dir da ja was abschauen...

PHP-Code:
class ConfigArrayFile
{
    protected 
$file null;
    protected 
$data = array();
    protected 
$autosave true;

    public function 
__construct($file$autosave true)
    {
      
$this->file     $file;
      
$this->autosave $autosave;
      if(
file_exists($this->file))
        
$this->data = include $this->file;
      if(!
is_array($this->data))
        throw new 
Exception('Die Konfigurationsdatei liefert kein Array!');
    }
    public function 
save()
    {
      
$daten var_export($this->data,true);
      
$content =  '<'."?php return $daten ?".'>';
      
$erfolg file_put_contents($this->file,$content);
      if(
false === $erfolg)
        throw new 
Exception('Die Konfigurationsdatei konnte nicht geschrieben werden!');
    }

    public function 
__isset($key)
    {
      return 
array_key_exists($key,$this->data);
    }
    
    public function 
__unset($key)
    {
      unset(
$this->data[$key]);
      if(
$this->autosave$this->save();
    }

    public function 
__set($key,$value)
    {
      
$this->data[$key]=$value;
      if(
$this->autosave$this->save();
    }

    public function 
__get($key)
    {
      if(
array_key_exists($key,$this->data))
          return 
$this->data[$key];
      throw new 
Exception("Key: $key nicht gefunden!");
    }

}




// testcode

$registry = new ConfigArrayFile('./konfigurationsdaten.php');

$registry->kuchen 'Zwiebelkuchen';
$registry->tier   'Frosch';


if(isset(
$registry->kuchen)) echo $registry->kuchen.'<br>';
unset(
$registry->kuchen);
if(isset(
$registry->kuchen)) echo $registry->kuchen.'<br>'
Der Umbau auf SimpleXML sollte problemlos machbar sein.

Achtung:
Wenn viele Prozesse gleichzeitig ändern, ist mit Race Condtions zu rechnen.
Mit Zitat antworten
  #5  
Alt 29.07.2009, 15:08:36
scraddy scraddy ist offline
Anfänger
 
Registriert seit: Jun 2008
Alter: 37
Beiträge: 9
AW: mit regulärem ausdruck variable ändern

danke!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit Regulärem Ausdruck joe PHP für Fortgeschrittene und Experten 23 17.10.2007 11:36:15
Wert einer Variable ändern und die Änderung auf die Variable ablegen. Ichthys PHP Grundlagen 8 04.05.2006 00:18:55
Problem mit regulärem Ausdruck in preg_replace blankend PHP Grundlagen 4 28.02.2006 13:25:01
Variable in Variable? Giz PHP für Fortgeschrittene und Experten 13 22.07.2005 11:12:00
URL mit Präfix und Variable im Speicher ??? ben PHP für Fortgeschrittene und Experten 1 15.06.2002 21:45:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:45:21 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt