Diese verflixten regex..

Paspirgilis

Weißer Powerranger
Hi,
Ich hab eine Art Datenbank mit Dateien gemacht.
Und will diese Datei nun umschrieben an einer ganz bestimmten Stelle:
Meine Tabelle:
Code:
id|key|value
0|default_language|de
1|template|standard
2|phperrors|true
3|error404|false
4|showdefaultpageiferror|false
5|usersonline|true
8|domain|www.domain.tld
6|domainmagnet|false
7|pagename|P-CMS V2
8|contactemail|no@email.de
9|cachebrowser|false
10|antijsprotection|true
11|containersforshadow|false
12|forum|false
13|topmain_advert|false
14|maiden|true
15|doctype|doctype_1_trans
Mein Generierter regEx-Code:
Code:
".*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*\|.*\|(.*)
"
PHP-Code um den Regex auszuführen:
PHP:
$updateValue = "false";
$newTable = preg_replace('/' . $pregText . '/isU', $updateValue, $db_table_content);
...
Nun müsste doch eigentlich der Value in der Zeile wo "key == 'maiden'" ist auf "true" gesetzt werden. Oder hab ich da einen Fehler?

MfG
Mark Paspirgilis

PS: Ja es ist rihctig ich bau grad SQL nach :P um es für ein eigenes Datei-basiertes Datenbank-system anwenden zu können. Dies ist ein Teil von der Update-Funktion. Die Select Funtion ist schon fertig und funktioniert :)
 
Zuletzt bearbeitet:
hab eine +2 in die schleife eingefügt und nun generiert er diesen String:
Code:
".*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*\|.*\|(.*)
"
Wieder erfolglos in meine Tabelle
 
Ich hab nochmal eine Debug ausgabe gemacht zur Kontrolle:
PHP Code:
PHP:
preg_replace('/' . $pregText . '/isU', $updateValue, $db_table_content)
Debug ausgabe von Teil1 des preg_replace:
Code:
"/.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*
.*\|.*\|(.*)
/isU"
Teil2:
Code:
string(5) "false"
Teil3:
Code:
string(386) "id|key|value
0|default_language|de
1|template|standard
2|phperrors|true
3|error404|false
4|showdefaultpageiferror|false
5|usersonline|true
8|domain|www.domain.tld
6|domainmagnet|false
7|pagename|P-CMS V2
8|contactemail|no@email.de
9|cachebrowser|false
10|antijsprotection|true
11|containersforshadow|false
12|forum|false
13|topmain_advert|false
14|maiden|true
15|doctype|doctype_1_trans"

... Hab ich irgendwo nen Fehler übersehen?
 
Ich würde mir noch wünschen das mir jemand meinen Fehler verrät, abe rich hab das Problem jetzt anders gelöst.
Ich loop nochmal alle Felder der Tabelle durch und wen cih an das Feld komme welches geupdated werden soll dann setze ich den updateString ein anstatt des Original-Wertes.
So erstelle ich dann den Plain-Text der Tabelle neu und ersetze den mit dem alten.
Funktioniert genauso effektiv, aber wahrscheinliche wäre ein preg_replace effizienter.

MfG
Mark Paspirgilis
 
Zurück