$string = 'http://example.com/category/1/news/2134/'; // '1' is dynamic
How can I change 1
to any number I want?
Can't call parts of the string, its just a text-like variable.
It can be done with some true regex.
$string = preg_replace('~(?<=category/)[0-9]+(?=/news)~', '56', $string);
This replaces the number by 56.
This approach uses a regex with assertions.