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 <b>-Tag macht Text fett: <code><b>fett</b></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.