Записываю (кэширую) небольшое кол-во товаров (хитов) в файл при помощи функции:
file_put_contents($file, serialize($content)).
При записи присутствуют HTML код и сам PHP код в небольшом количестве.
Цена для товара выводится так: <?=$hit->price;?>. Соответственно этот код надо выполнить при записи, что сейчас и происходит, но в начале записываемой информации в файл, присутствует строка:
<?php $currency = \system\App::$result->get('currency'); ?>
и в самом файле уже вывод значения: <?=$currency['value'];?>
$currency - это массив с активной валютой на сайте. Получается, если этот код отработает при записи файла, что сейчас и происходит, то при смене валюты,
<?=$currency ['value'];?> - уже не отработает, т.к. эта строчка кода уже отработала при записи.
Как можно записать и не выполнять при записи эти строчки кода?:
<?php $currency = \system\App::$result->get('currency'); ?>
<?=$currency['value'];?>
соответственно, когда будет подключаться готовый кэшированный файлик при обновлении страницы, будут выполняться эти строки кода каждый раз.
Может кто знает. Возникает идея, обрамления нужного PHP кода, но как не знаю и поможет ли это вообще тоже не знаю:)
UPDATE:
<?php if(isset($data['hits'])): ?>
<?php $currency = \system\App::$result->get('currency'); ?>
<div class="section-product-hits">
<?php foreach($data['hits'] as $hit): ?>
<div class="product-price">
<?php if(!$hit['discount_price']): ?>
<span class="price">
<?=$currency['symbol_left'];?> <?=$hit->price / $currency['value'];?>
</span>
<?php else: ?>
<?=$currency['symbol_left'];?> <span class="price"><?=$hit->discount_price / $currency['value'];?></span>
<?=$currency['symbol_left'];?> <span class="old-price"><?=$hit->price / $currency['value'];?></span>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
<?php if(isset($data[hits])): ?>
<?php $currency = \system\App::$result->get("currency"); ?>
<?php ob_start() ?>
<div class="section-product-hits">
<?php foreach($data[hits] as $hit): ?>
<div class="product-price">
<?php if(!$hit[discount_price]): ?>
<span class="price">
<?=$currency[symbol_left];?> <?='<?=$hit->price / $currency[value];?>'?>
</span>
<?php else: ?>
<?=$currency[symbol_left];?> <span class="price"><?=$hit->discount_price / $currency[value];?></span>
<?=$currency[symbol_left];?> <span class="old-price"><?=$hit->price / $currency[value];?></span>
<?php endif; ?>
</div>
<?php endforeach; ?>
</div>
<?php
$content = ob_get_flush();
file_put_contents($file, $content).
?>
<?php endif; ?>';
В комментарии не влезало, пихну в ответ)
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости