Есть строки
Пример
910786584_w269_h230_40_2.jpg
Мне нужно заменить _w269_h230_ на _w2000_h2000_
Проблема в том что на каждом изображении разные размеры _w269_h230_ но всегда одинаковы символы. Как правильно зацепится и заменить цифры
Можно поколдовать с preg_replace или просто использовать explode-implode, как пример։
<?php
$string = '910786584_w269_h230_40_2.jpg';
$list = explode( '_', $string );
$list[ 1 ] = 'w2000';
$list[ 2 ] = 'h2000';
$result = implode( '_', $list );
print_r( $result );
?>
Ещё вариант в коллекцию ответов. Можно оптимизировать шаблон, и использовать подмаски:
$str = '910786584_w269_h230_40_2.jpg';
$patt = '~_([wh])\d+~';
$repl = '_${1}2000';
echo preg_replace($patt, $repl, $str);
Если нужно подставлять значения по отдельности, то можно разделить один шаблон на два (каждый - под конкретное совпадение):
$str = '910786584_w269_h230_40_2.jpg';
$patt = ['~_w\d+~', '~_h\d+~'];
$repl = ['_w2000', '_h2000'];
echo preg_replace($patt, $repl, $str);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости