16.11 In einem regulären Ausdruck eine PHP-Funktion nutzen

Problem

Sie möchten gefundenen Text mit einer PHP-Funktion verarbeiten. Sie wollen zum Beispiel alle HTML-Entities in eingefangenen Teilmustern dekodieren.

Lösung

Nutzen Sie preg_replace_callback( ). Geben Sie anstelle eines Ersetzungsmusters eine Callback-Funktion an. Dieser Callback-Funktion wird ein Array mit allen gefundenen Teilmustern übergeben, und sie sollte einen geeigneten Ersetzungsstring zurückliefern. Listing 16.3 dekodiert die Entities zwischen <code></code>-Tags.

<?php $html = 'Das &lt;b&gt;-Tag macht Text fett: <code>&lt;b&gt;fett&lt;/b&gt;</code>'; print preg_replace_callback('@<code>(.*?)</code>@','decode', $html); // $matches[0] ist der gesamte gefundene String. // $matches[1] ...

Get PHP 5 Kochbuch, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.