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)