PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : preg_replace, die Zweite.



lolli
15-11-2002, 08:23
Hallo,
nachdem ich gestern bereits dachte, ich hätte die Lösung, musste ich leider festellen, dass dem nicht so war. Aber vielleicht könnt ihr mir sagen, warum das erste Beispiel nicht funktioniert.
Das 2. Bsp. läuft, aber ich möchte gern die erste Variante nutzen:

Oliver



<?php
// beispiel 1
$tmp=array('test0'=>'Test0','test1'=>'Test1','test2'=>'Test2','test3'=>'Test4');
function parse_output($str){
return preg_replace("/%([a-zA-Z0-9_]+)%/e",$GLOBALS['tmp']["$1"],$str);
}
ob_start("parse_output");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>Untitled</title></head>
<body>

Die ist Test %test0%.

</body>
</html>


<?php
// beispiel 2
$tmp=array('test0'=>'Test0','test1'=>'Test1','test2'=>'Test2','test3'=>'Test4');
function getv($s){
return $GLOBALS['tmp'][$s];
}
function parse_output($str){
return preg_replace("/%([a-zA-Z0-9_]+)%/e","getv('\\1')",$str);
}
ob_start("parse_output");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>Untitled</title></head>
<body>

Die ist Test %test0%.

</body>
</html>