str_replace in array

okay... vielen, vielen, vielen, vielen dank.


Zwei Frage habe ich noch.


Wie muss ich
PHP:
$pattern = "/(user[[:blank:]]*=[[:blank:]]*{$user}[^[:alnum:]].*group[[:blank:]]*=[[:blank:]]*)[,[:digit:]]+[^,[:alnum:]]/isU";

verändern, wenn Zeilen bzw. infos hinzukommen?

PHP:
/(user[[:blank:]]

Hat user etwas mit der Variable zu tun oder hast du diesen abschnitt einfach nur user genannt?
 
Zuletzt bearbeitet:
Du musst nix verändern
Der Pattern sucht nach dem Text 'user = XYZ' und von dort bis zum nächsten 'group = '. Der folgende Text wird ersetzt. Ob vor oder nach dem group ncoh andere Params kommen ist egal.

[[:blank:]] steht für diverse Leerzeichen
Das '.*' im Pattern steht dafür, dass dort irgendwas kommt.
 
Okay... scheinbar habe ich doch noch ein paar Fragen zu deinem script.

User
Code:
[account]
user                          = test
pwd                           = testtest
group                         = 1,2

[account]
user                          = bla
pwd                           = testtest
group                         = 1,2
So sieht jetzt die User.txt Datei aus.





PHP:
$login = 'test';    
$paket = '1,3';
$fileName = 'user.txt';
 
 
//Pattern zusammenstellen
$pattern = "/(user[[:blank:]]*=[[:blank:]]*{$login}[^[:alnum:]].*group[[:blank:]]*=[[:blank:]]*)[,[:digit:]]+[^,[:alnum:]]/isU";
//Ersatzstring zusammenstellen
$replace = "\${1}{$paket}\n";
 
//Datei vollständig laden
$fileString = file_get_contents($fileName);
//Gruppe ersetzen
$newFileString = preg_replace($pattern, $replace, $fileString);
//Datei speichern
file_put_contents($fileName, $newFileString);


Leider ändert das script die Gruppe jetzt nicht mehr. Liegt es an den vielen Leerzeichen bzw. Tabs dazwischen?
 
Zurück