Thema: Referenz von Regex einer Funktion übergeben

Hallo zusammen

Ich habe ein kleines PHP/Regex-Problem.
Vor kurzem habe ich meine Webseite komplett neu entwickelt. Dabei wollte ich bei der Darstellung der News folgendes realisieren:
Titel der News
Wobei der erste Buchstabe als Bild eingefügt werden soll. Das geht eigentlich auch (Beispiel: siehe http://www.opeth.ch)

Ich habe das wie folgt gelöst:

- Der Funktion replaceCapitalInHeading wird ein Text uebergeben. Dabei wird der erste Buchstabe innerhalb des <h1> Tags ersetzt.
- Funktion getCapitalLetter gibt ein <img> Tag fuer das Einfuegen des Buchstabens zurueck

function replaceCapitalInHeading($pText) {
    $text = $pText;
    $text = preg_replace('/(<h1>)(.)(.*<\/h1>)/', "$1".getCapitalLetter("$2")."$3", $text);
    return $text;
}

function getCapitalLetter($pLetter) {
    return '<img class="capital" src="'.DIR_IMG.'letters/'.$pLetter.'.png" alt="'.$pLetter.'"/>'."\n";
}

Dies funktioniert soweit!
Mein Problem ist nun aber, dass der erste Buchstabe (theoretisch) klein oder gross geschrieben sein kann. Die Grafiken im Verzeichnis letters/ sind jedoch als Kleinbuchstaben abgelegt.
Nun dachte ich mir, ich kann einfach in der Funktion getCapitalLetter den Buchstaben $pLetter mit strtolower/strtoupper klein/gross machen. Aber eine Ausgabe von $pLetter ergibt in diesem Falle nur $2.
Könnte ich vielleicht direkt im Regex diesen Buchstaben klein machen? Wobei das auch nicht die beste Lösung wwaere, denn in der getCapitalLetter Funktion moechte ich als alt-Text den Buchstaben unveraendert ausgeben...

Gruss
Jonathan

Zuletzt bearbeitet von terje (11-01-2006 00:22:56)

Four legs good, two legs bad