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