PHP как заменить тексты на значения переменной

Samail
На сайте с 10.05.2007
Offline
369
1030

Строка: "текст %1% текст %3% текст %25% текст"

Как найти %номер%, вставить этот номер в переменную и заменить найденное на значение переменной?

Что-бы получилось так:

echo 'текст '.$cart['title_1'].' текст '.$cart['title_3'].'  текст '.$cart['title_25'].'  текст'

Сколько таких номеров, сколько в них цифр и есть ли они в строке вообще, заранее неизвестно.

[umka]
На сайте с 25.05.2008
Offline
456
#1

Вы уже пытались написать какой-то код для решения этой задачи?

Или хотите, чтобы написали за вас? :)

Лог в помощь!
C
На сайте с 26.10.2013
Offline
54
#2

Речь об этом? http://www.php.su/sprintf

Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп
Samail
На сайте с 10.05.2007
Offline
369
#3

colorito, нет наверное. %1% это значение объекта JSON c именем "title_1". $cart['title_1'] выводит это значение. Нужно как-то указать что вместо %1% нужно вывести $cart['title_1'].

LovelAss
На сайте с 05.06.2009
Offline
96
#4

preg_replace_callback

K
На сайте с 28.12.2008
Offline
61
kud
#5
LovelAss:
preg_replace_callback

Можно и обычным preg_replace + eval

<?php

$cart['title_1'] = 'первый текст';

$cart['title_3'] = 'второй текст';

$cart['title_25'] = 'третий текст';

$string = "текст %1% текст %3% текст %25% текст";

$replaced_text = preg_replace("#%(\d+)%#Usi","' . \$cart['title_$1'] . '",$string);

eval( "echo '$replaced_text';");

?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий