PHP Portal » PHP Forum » Entwicklung » Webprogrammierung mit PHP, Perl, usw. » preg_match Problem

preg_match Problem 

von
Neuling
Zitat
Moin Folks...
In einem Script wird ein Template Zeile für Zeile eingelesen ($str) ...
in diesem $str steht u.a. zB : [Ti_Status_0] ODER [user][k_name]
allerdings nicht als Variable oder Array zu sehen - sondern nur als ReplaceString
denn diese möchte ich ersetzen durch das bereits zuvor bestehende array $d

Das Array $d
$d[Ti_Status_0] = 3;
$d[user][k_name] ='Fehli';
$d[user][k_vname] = 'Micha';
usw....

>>> $str = '< td > .... .... Texttext ( [Ti_Status_0] ) blabla ... [user][k_name] [user][k_vname] ([user][k_addi]) < / td >' ;

ERSETZEN: angedacht hatte ich:

>>> $str = preg_replace('/([a-z0-9_]+)[(.*)]/Uie','$1[$2]',$str );

funzt abää net ... und mit pregMatch hab ichs auch nicht so :-(
Da gibt es doch bestimmt jemanden, der mir helfen kann - oder?
Gruß Micha

Werbung

Re: preg_match Problem 

von
Member
Zitat
Warte mal auf den Hausherren, der kann dir hierbei sicherlich helfen.

Re: preg_match Problem 

von
the Boss
Zitat
dein Ausdruck sollte die Variablen finden, doch die Ersetzung ist falsch.
du willst doch durch

'$d[\'\\1\'][\'\\2\']' ersetzen, oder?

Re: preg_match Problem 

von
Neuling
Zitat
richtig - ich möchte ersetzen
im $str steht ZB:
"Mein Name: [user][name] -- Mein Status: [Ti_Status]"
nach dem relpace soll dort die im Array $d stehenden Daten stehen :
"Mein Name: Fehli -- Mein Status: gelöscht"

Re: preg_match Problem 

von
the Boss
Zitat
versuche ist doch mal mit

PHP Code
1
2
3
4
// mit 2 Parametern $text = preg_replace( '#\[([0-9a-z_]*)\]\[([0-9a-z_]*)\]#ise', '$d[\\1][\\2]', $text ); // mit 1 Parameter $text = preg_replace( '#\[([0-9a-z_]*)\]#ise', '$d[\\1]', $text );

Re: preg_match Problem 

von
Neuling
Zitat
geht doch :-) ...
genau danach habe ich gesucht ...
bist n held S.
danke

Schnellantwort