Search code examples
phpstringreplacepathdirectory

Replace directory in the middle of a filepath string


$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.


Solution

  • $string = preg_replace('~(?<=category/)[0-9]+(?=/news)~', '56', $string);
    

    This replaces the number by 56.

    This approach uses a regex with assertions.