|   Mailinglisten-Archive | 
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