Hi,
ich versuche eine Lin keersetzung mittels preg_replace_callback zu kreieren, leider scheitert es an einem kleinem Problem...
Wenn ich einfach nur die Funktion aufrufe und im gleichen Text eine andere (nämlich die callback-Funktion) definiert habe, funktioniert es tadellos.
Bsp. (von php.net)
<?php
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
// the callback function
function next_year($matches) {
// as usual: $matches[0] is the complete match
// $matches[1] the match for the first subpattern
// enclosed in '(...)' and so on
return $matches[1].($matches[2]+1);
}
echo preg_replace_callback(
"|(\d{2}/\d{2}/)(\d{4})|",
"next_year",
$text);
?>
wenn ich jetzt aber den gesamten COde in einer FUnktion kapseln will, weiss ich nicht mehr wo die Callback-Funktion hinkommt. Innerhalb der Funktion wieder eine Funktion deklarieren finde ich komisch und einfach ausserhalb geht nicht. Ich weiss leider nicht was für ein FEhler auftritt, es erscheint nur die Ausgabe nicht richtig (bzw. gar nicht, wie in diesem Beispiel)
Beispiel:
<?php
function hallo() {
$text = "April fools day is 04/01/2002\n";
$text.= "Last christmas was 12/24/2001\n";
echo preg_replace_callback(
"|(\d{2}/\d{2}/)(\d{4})|",
"next_year",
$text);
}
// the callback function
function next_year($matches) {
return $matches[1].($matches[2]+1);
}
?>
Was kann ich da tun?
ciao
romy
DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
sh:( fo:| ch:? rl:( br:& va:| zu:) ss:| ls:[
Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode