Sandra: Wer erklärt mir diese preg_replace_callback Funktion

Beitrag lesen

Hallo,

ich habe folgenden Code gefunden, als ich auf der Suche nach einer Möglichkeit war, pdf-files zu generieren. Dieser Code sucht in einem pdf-file nach Platzhaltern in der Form "[[$foo1]]" und ersetzt diesen durch "$foo1", was sich in dem Array "$pdf_vars" befindet.
Das funktioniert auch wunderbar, nur wüsste ich auch gerne, wie genau das funktioniert (Suchmuster und eigentliches Ersetzen).

Könnte mir das vielleicht jemand erklären? Unter php.net bin ich bei diesem Beispiel nicht schlau geworden.

Vielen Dank!

Gruß Sandra

function replace_pdf_var($match){
    if (isset($GLOBALS['pdf_vars'][$match[1]])) {
        return $GLOBALS['pdf_vars'][$match[1]];
    } else {
        return $match[1];
    }
}

if(file_exists($pdffile)){
    if ($fp = fopen($pdffile, 'rb')) {
        $template = fread ($fp, filesize ($pdffile));
        fclose ($fp);

$pdf = preg_replace_callback('#[[$([^]]+)]]#',
            'replace_pdf_var', $template);

$fp = fopen ("brief.pdf","w");
  fwrite($fp,$pdf);
  fclose($fp);
     }
}