- preg_replace_callback: documentation ( source)
- str_replace: documentation ( source)
<?php
$data = '10 x 2,5';
echo preg_replace_callback('/(\d+(?:[.,]\d+)?)\h*x\h*(\d+(?:[.,]\d+)?)/', function($match) {
return str_replace(',' , '.', $match[1]) * str_replace(',' , '.', $match[2]);
}, $data);