У меня есть пользовательский PHP скрипт с текстом шаблона, который выглядит, как этотЗаменить шорткоды с регулярным выражением в PHP
Color: [option]color[/option]<br />
[if option="manufacturer"]<br />
Manufacturer: [option]manufacturer[/option]<br />
[/if]<br />
Price: [option]price[/option]
Я использовал preg_replace_callback успешно заменить [опция] цвет [/ параметр] и [опция] Цена [/option] с реальными значениями, такими как White и 10,00 $.
Я использую этот код для простых [опция] короткие номера:
$template = preg_replace_callback('!\[option](\w+)\[\/option\]!',
function ($matches)
{
//Here I get a value of color, price, etc
...
return $some_value;
},
$template);
Но я просто немогу понять, что делать с IF заявления ... Он должен проверить, если производитель установлен, а затем замените [вариант] производителя [/ option] и, конечно же, удалите открывание и закрытие, если линия.
выход Результат должен быть
Color: White<br />
Manufacturer: Apple<br />
Price: $10.00
Или если есть ни один производитель не определен он должен быть
Color: White<br />
Price: $10.00
Если в строке ввода нет производителя, если он не установлен, вы можете игнорировать оператор if. Просто замените что-либо между значениями [option] и [/ option] tiwh, которые вам нужны, и удалите что-либо внутри скобок [] –
Я предлагаю использовать механизм шаблонов вместо того, чтобы изобретать колесо. –
-Варите себе пользу и используйте подходящий механизм шаблонов или даже простой старый PHP вместо того, чтобы пытаться изобрести колесо в течение 100-го раза. - Что сказал @PeterM. – EJTH