phpbar.de logo

Mailinglisten-Archive

RE: [php] Suche Pattern für bestimmte Aufgabe

RE: [php] Suche Pattern für bestimmte Aufgabe

Andreas Demmer php at andreas-demmer.de
Mit Jun 2 16:28:34 CEST 2004


Tim schrieb:

>> $string = preg_replace('|<IMG +.*id *= *([0-9]+)[^>]+>|i',
>> '<!--bid=\\1-->', $string);
>>
> Diese Variante berücksichtigt nicht, dass auch noch andere Bilder im
> HTML-Quellcode vorkommen könnten.
>
> Getauscht werden sollen immer nur die Bilder mit den passenden ID's.
> In Deinem Beispiel mit der Zahl 1.

preg_replace_callback ist Dein Freund, in etwa so:

<?php
$IDs = array(7892);
$string = <<<EOD
<IMG id=7892
src="http://www.pontevecchio.de/pictures/casa_dera_02_co_ar.jpg" align=right
border=0>
<IMG id=0001
src="http://www.pontevecchio.de/pictures/casa_dera_01_co_ar.jpg" align=right
border=0>
EOD;

function replaceID($matches) {
    global $IDs;

    if(in_array($matches[2], $IDs)) {
        return '<!--bid='.$matches[2].'-->';
    } else {
        return implode(NULL, $matches);
    }
}

$string = preg_replace_callback('|(<IMG +.*id *= *)([0-9]+)([^>]+>)|i',
'replaceID', $string);
echo $string;
?>

Gruss,
Andreas

--
http://www.andreas-demmer.de



php::bar PHP Wiki   -   Listenarchive