$str = '<offer id="10609" available="true">
<price>847</price>
<currencyId>RUB</currencyId>
<categoryId>787</categoryId>
</offer>
<offer id="10617" available="true">
<price>404</price>
<currencyId>RUB</currencyId>
<categoryId>787</categoryId>
</offer>';
$result = preg_replace_callback(
'/<price>(.*?)<\/price>/m',
function ($matches) {
return $matches[1] * 0.8;
},
$str
);
echo "The result of the substitution is " . $result;