Задать вопрос
jasonOk
@jasonOk
Легче болтать, чем код писать

Как заменить совпадения в тексте?

Есть регулярное выражение, для примера возьмём самое простое /[0-9]/ и при коде preg_replace("/[0-9]/","num","1 2 3"); выведет num num num, а как мне сделать, чтобы в зависимости от значения, подходящего под pattern, менялась переменная replacement?

Получается, есть те же 1 2 3, но когда находится подходящее под паттерн значение (первым будет 1)
происходит запрос к БД и затем, в зависимости от совпадения, единица к примеру заменяется на "one", затем совпадение 2 опять запрос и заменяем его допустим на "two" и так далее
Как такое можно реализовать?
  • Вопрос задан
  • 468 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
preg_replace_callback()

$result = preg_replace_callback('/\d/', function ($matches) use ($db) {
    // Запрос к базе данных $db
    return $replace;
}, '1 2 3');
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
if(preg_match("/1/ism", $you)){
    // запрос к БД
    if($otvet_bd == 'need'){
        preg_replace("/1/ism", "new", $you)
    }
}

И так по if на каждый случай...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы