лак — доступ к переменной php внутри тега ESI

В настоящее время пытаюсь использовать функцию ESI для включения системы кэширования лака с проектом php. в моем сценарии мне нужно получить доступ к переменным php внутри тега esi. что-то вроде следующего …

 <p class="dt5">This article was read <esi:include src="http://localhost/live24/esi/viewCount" /> times. </p>

Вот полный URL-адрес внутри тега ESI, и он работает нормально, то есть извлекает счетчик чтений с сервера, а остальная часть страницы обслуживается из кэша. но как я могу создать динамический URL, который я могу передать в тег ESI.

Я пробовал что-то вроде следующего ….

<?php $url = site_url() . "/esi/viewCount" ?>

или же

<?php $url = "http://localhost/live24/esi/viewCount" ?>
<p class="dt5">This article was read <esi:include src="$(url)" /> times. </p>

как $(variable_name) или же $(variable_name{key_name}) это синтаксис для добавления переменной внутри тега esi, но кажется, что он не работает при доступе к переменной PHP.

Я попробовал что-то подобное также …

<p class="dt5">This article was read<esi:include src="http://$(SERVER{NAME})/live24/esi/viewCount" /> times. </p>

и это работает. показывая, что я могу получить доступ к суперглобалам из тега esi.

есть ли способ получить доступ к переменным php внутри тега esi или любой другой способ создать динамический URL для использования в esi include.

1

Решение

Нашел решение, и оно довольно простое и понятное на самом деле. должен был подумать об этом раньше.

сначала фрагмент кода ..

<p class="dt5">This article was read
<esi:remove>
<?php $esiUrl = "http://localhost/bdlive24/esi/viewCount"; ?>
</esi:remove>

<!--esi
<esi:include src=<?php echo $esiUrl; ?> />
-->
times</p>

здесь трюк представляет <esi:remove> тег. любой код разметки внутри тега удаления будет просто проигнорирован и код php будет выполнен. Так что теперь возможно любое динамическое генерирование URL внутри тега esi: remove и связывание его внутри тега esi: include.

<!-- ... --> этот тег будет просто скрыт лаком, когда включена обработка ESI, а в случае отключения обработки ESI этот тег вступит в действие и сделает тег esi: include неактивным.

Если у вас есть другие идеи, пожалуйста, поделитесь ….

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]