- preg_match: documentation ( source)
- str_replace: documentation ( source)
- date: documentation ( source)
- sprintf: documentation ( source)
<?php
$strings = [
"<p>We've been in business since 1998 and produced this logo design [2002] years ago.</p>",
"<p>We've been in business since 1998 and produced this logo design [2017] years ago.</p>"
];
foreach ($strings as $string) {
preg_match('/\[(\d{4})\] years/', $string, $matches);
$years = date('Y') - $matches[1];
$result = sprintf("%s year%s",
$years,
$years === 1 ? "": "s"
);
echo str_replace($matches[0], $result, $string) . PHP_EOL;
}