Oneclassick
@Oneclassick

Как создать свои макросы для текста в PHP?

Здравствуйте,

У меня появился вопрос как создать свои макросы для текста в PHP, что бы ими можно было полноценно управлять и т.д?
Обычный str_replace(); не подойдет т.к мне нужна еще возможность экранировать макрос (символом "\"), а еще нужна возможность многоуровневой замены.

<?php

$macros = [
    "{user}" => "Вася",
    "{date}" => date("d.m.y"),
    "{user_id}" => 1,
    "{rand:(min):(max)}" => rand($min, $max)
];
$text = "Привет {user}, сегодня {date}. Ваш ID {user_id}. Ваше рандомное число -- {rand:0:10}";
echo replace($text);


Результат: Привет Вася, сегодня 14.03.2020. Ваш ID 1. Ваше рандомное число -- 5
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
если нужно что-то посложнее плейсхолдеров, то смотри в сторону preg_replace_callback_array, а так см. ответ ffosters
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ffosters
Используйте функцию strtr:

$str = strtr('Hello {name}!', [
    '{name}' => 'World',
]);


https://www.php.net/manual/ru/function.strtr.php
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы