Einzelnen Beitrag anzeigen
Alt 12.06.2005, 11:16   #3
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

Die Frage ist wie Variabel es sein muss. Am einfachsten ist es, wenn als Variablenname nur z.B. "$var" vorkommt, und $var nur einmal im String vorkommt.
Das ginge in php mit:
Code:
$result=str_replace ( "_$var_", $var, "blablabla_$var_blabla");
Wenn der Variablenname unbekannt ist:
Code:
$varInDb="blablabla_$var_blabla";
$result="";
$startPos=strpos($varInDb,"_$");
if($startPos===false){
  $result="Keine Variable vorhanden";
} else {
  $endPos=strpos($varInDb,"_",$startPos);
  $varName=substr($varInDb, $startPos, $endPos - $startPos);
  $result=substr($varInDb, 0, $startPos) . $$varName . $substr($varInDb, $endPos);
}
Beim zweiten Codeblock müsstest du austesten wie perl bzw. php die Zeichen in Strings zählt (bei 0 beginnend, wo beginnt der Suchstring usw). Eventuell musst du z.B. bei $startPos noch 1 oder 2 dazuaddieren.

Ich kenn mich mit Perl leider nicht aus, vielleicht musst du mit unpack() und pack() arbeiten.
Strings ersetzen geht dort irgendwie mit s/ersetzeDas/durchDas
Du kannst dich auch mit folgenden Dingen spielen:
$varInDb=~/_$[a-zA-Z]+_/
$` sollte dann "blablabla" sein
$& sollte _$var_ sein
$' sollte blabla sein

Vielleicht helfen dir auch die Punkte 9-11 dort weiter: http://www.perl-archiv.de/perl/tutor...rl_start.shtml

hth,
Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten