PHP Regex +vars in str

  • Hi

    Ich probiere Aus Strings Variablen zu lesen. Das soll heissen ich will eine .php Datei einlesen und die Variablen rauslesen.

    der "String "

    Mein preg_match

    Code
    preg_match('([$]+[a-zA-Z0-9_-]+[\[\'a-zA-Z0-9\'\]{0,2}]+[ ]{0,3}+[=]+[ ]{0,3}+["\']{0,1}?["\']{0,1})',$pre[$i])

    Und das Ergebnis

    Code
    $nix=12
    $hallo='hallo'
    $site['title']='Seiten Titel'
    $site['ar']['site']='Name'
    $site['ar']['content']='Dies ist der Inhalt'
    $seh_nix = error
    echo 'Hallo Du das gleich () befindet sich $diese_nicht="Hallo"

    zuerst explode ich mir ; Dann suche ich es ab.
    Wie kann ich schauen das Nur noch $var='str'; übrigbleibt ohne das ich auskommentierte Variablen dabei habe?
    Sie sollten auch nicht in einem "String" vorkommen.
    Also nur wenn sie definiert werden wenn der Parser durchläuft.

  • hmm und wiso machst das ganze nicht mittels einer Konfigurationsdatei?!
    da habe ich zur not was, was dir aus ner array nen PHP code erzeugt den du dann als file speichern und includen kannst.

    oder was hast du genau vor?!
    also welchen sinn soll das ersetzen erfüllen?! opfuskatieren ?!

  • Primär schwand mir die Idee z.B. meine mysql.php so einzulesen sauber darzustellen, editieren und dann wieder abspeichern zu können.

    Wie meinst du das mit der Konfigurationsdatei?

    So wie es sich anhört ist das sehr schwer :D

    Gruss ::RMB::

  • naja das du einfach irgent wo ne txt datei im key value format hast.. also csv ähnlich

    key:wert
    key:wert
    key:wert

    was du denn einfach mit
    $config = array();

    foreach(file() AS $row)
    {
    $tmp = explode(':', $row, 2);
    $config[$tmp[0]]=$tmp[1];
    }

    einliest...
    oder halt so wie ich es mache, die klasse dir mir aus ner array PHP macht, wenn ich es mal wieder mehrdimensional benötige...

  • Stimmt diese Idee kam mir nicht.
    Mal schauen ob ich das mit ganzen Textblöcken schaffe die eigentlich jeden Inhalt haben kann. auch : :P

    Werde mir das mal auf Eis legen und weiter mit ner DB arbeiten.

    Eine kurze Idee war, ein kleines News oder GB Script das alles in eine Datei schreibt ... und dann auch wieder bearbeiten kann. Ohne eine Extra Datei mit nur Text drin.

  • sonst versuche es einfach doch nochmal mit ner extra PHP datei, wo du das drinn ablegst...

    oder du machst das einfach zu oberst an die datei, eingeschlossen von:

    ############# ab hier ##################
    ############# bis hier ###################

    dann kannst du das ja mit str_pos und 2x substring um die generierte var rum legen und somit die php datei generieren...

    währe eine idee, aber der nachteil ist, damit könnte man relativ leicht schadcode einschleusen wenn du es nicht recht überprüft..
    dazu bekommst du bei einer gewissen Besucherzahl extreme file lock Probleme.

    also nutze lieber ne DB, dafür ist die ja schließlich da.