James
James

Reputation: 43667

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.

Upvotes: 3

Views: 325

Answers (3)

NikiC
NikiC

Reputation: 101946

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

This replaces the number by 56.

This approach uses a regex with assertions.

Upvotes: 2

HoLyVieR
HoLyVieR

Reputation: 11134

Without more information, my best guess at your problem is :

<?php
$string = 'http://site.com/category/' . $yourNumberHere . '/news/2134/';
?>

Upvotes: 2

Robus
Robus

Reputation: 8269

$array = explode('/',$string);
$array[4] = '666';
$string = implode('/',$array);

[edit] @People downvoting, what seems to be the problem with this approach?

Upvotes: 2

Related Questions