- var_dump: documentation ( source)
- vsprintf: documentation ( source)
- preg_replace: documentation ( source)
<?php
$string = "/companies/(\d+)/adverts/new/(\d+)/(\d+)/";
$replace = array(2223, 'generic');
$result = vsprintf(preg_replace('#\(.*?\)#', '%s', $string, count($replace)), $replace);
var_dump($result);