PHP повторяет HTML-код с большим количеством PHP - PullRequest
0 голосов
/ 08 августа 2010

У меня есть блоки HTML-кода в базе данных MySQL, и моя инфраструктура должна распечатать их в шаблоне PHP, который будет выводиться в браузер. Для этого я звоню:

</tr>
    <!-- Section 3 -->
    <?php echo SIN_SiteView::get('section3') ?>
<tr>

Который получает код из APC или MySQL, теперь код, который он получает, выглядит следующим образом:

<td height="280" colspan="2" bgcolor="#00abd2">
<a href="#">
    <img src="<?php echo SIN_Utilities::l("image", "home_flash.png")?>" width="710" height="280" border="0" />
</a>

Как вы видите, мне нужно запустить все изображения с помощью метода, известного как "l", который я использую, чтобы легко изменить пути к изображениям. Теперь проблема в том, что если я выведу этот блок кода на экран, он будет просто отображен как строка и не будет работать.

Я попытался окружить php '. [код]. ' и удаление php, но это также не сработало. У кого-нибудь есть идеи о том, как я мог бы правильно отразить это на странице.

Спасибо.

ОБНОВЛЕНИЕ: я думаю, что мне нужно использовать команду eval () благодаря некоторым комментариям, я просто не понимаю, как реализовать это в моей ситуации. Будем весьма благодарны за любые простые примеры, например, как мне изменить эту строку:

<?php echo SIN_SiteView::get('section3') ?>

Чтобы повторить весь блок, показанный выше, еще раз спасибо.

Ответы [ 3 ]

3 голосов
/ 08 августа 2010

Я думаю, что вы хотите eval, а не echo.См. этот немного другой вопрос.

Мое решение было бы eval '?>'.$myhtml.'<?php'.

0 голосов
/ 08 августа 2010

Добавляет ли маркетинговая команда php-код к html, который вы храните?

Если нет, возможно, вы могли бы изменить <?php echo FUNCTION() ?> на @FUNCTION() и превратить ваш SIN_SiteView::get() в своего собственного интерпретатора шаблонов?

Я согласен с cHao, хотя;вероятно, было бы легче принять один из шаблонных пакетов и преобразовать ваши данные.

0 голосов
/ 08 августа 2010

Вам нужно будет использовать eval для оценки встроенного PHP. Однако это потенциально довольно рискованно (eval - это зло и т. Д.), Особенно если любой извлекаемого контента получен от пользователя.

Например: по крайней мере, что мешает пользователю встраивать ...

<?php die(); ?>

... в содержании, которое они вводят.

Таким образом, вам нужно будет проявить большую осторожность, если действительно альтернативы этому подходу нет.

Некоторые обновления:

  1. Если вы новичок в PHP, я бы посоветовал переосмыслить. Скорее всего, нет необходимости использовать eval. (Если нет динамически настраиваемого контента для каждого пользователя, он вам не нужен.) Чего вы пытаетесь достичь?

  2. Какую конкретную ошибку / проблему вы имеете? (Я предполагаю, что вы используете var_dump или print_r для целей отладки и т. Д.) Поскольку контент, который вам нужно оценить, не является чистым PHP (это HTML с PHP), вы Вам нужно будет встроить PHP закрывать и (повторно) открывать теги, как показано на рисунке @Borealid.

...