【问题标题】:PHP echoing HTML code with more PHP includedPHP 回显 HTML 代码,包含更多 PHP
【发布时间】:2010-08-08 16:19:47
【问题描述】:

我在 MySQL 数据库中有 HTML 代码块,我的框架需要在 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 但这也不起作用。有没有人对我如何正确地将其回显到页面有任何想法。

谢谢。

更新:由于某些 cmets,我认为我需要使用 eval() 命令,我只是不明白如何在我的情况下实现它。任何简单的例子都将不胜感激,例如如何更改这一行:

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

为了呼应上面提到的整个区块,再次感谢。

【问题讨论】:

  • 你能包含更多的代码吗?具体来说,一些周边的php(html之外)。您可以输入 ...[html]... 之类的内容来表示在这与您在此处显示的内容之间有一大块纯 html 代码,但拥有这些额外代码可能会有很大帮助。
  • 另外,由于您没有使用&lt;?= SIN_Utilities::l("image", "home_flash.png") ?&gt; 的简写形式,您可能需要在?&gt; 之前使用分号。但这不会导致这个问题。

标签: php html embed quotes echo


【解决方案1】:

我认为你想要eval 而不是echo。请参阅this 略有不同的问题。

我的解决方案是eval '?&gt;'.$myhtml.'&lt;?php'

【讨论】:

    【解决方案2】:

    营销团队是否将 php 代码添加到您存储的 html 中?

    如果没有,也许您可​​以将您的 &lt;?php echo FUNCTION() ?&gt; 更改为 @FUNCTION() 并将您的 SIN_SiteView::get() 演变为您自己的模板解释器?

    我同意 cHao 的观点;采用其中一个模板包并转换您的数据可能会更容易。

    【讨论】:

    • 作为一名实习生,我认为他们让我手工编写这篇文章的原因是为了完成项目,但作为一种学习体验,我认为使用预制包会更容易(我什至可以也使用预先构建的 CMS)但是手工构建它是重点。是的,营销团队需要能够更改 php 加载的照片,所以是的,他们需要能够控制它
    【解决方案3】:

    您需要使用eval 来评估内联PHP。但是,这可能会带来很大的风险(eval 是邪恶的,等等),尤其是如果 任何 正在获取的内容是用户来源的。

    例如:至少,用户内联的停止是什么......

    <?php die(); ?>
    

    ...在他们输入的内容中。

    因此,您需要非常小心,如果真的没有其他方法可以替代这种方法。

    一些更新:

    1. 如果您是 PHP 新手,我建议您重新考虑一下。可能没有必要使用 eval。 (除非有针对每个用户的动态定制内容,否则您不需要它。)您想要实现什么?

    2. 您遇到了什么具体错误/问题? (我假设您使用 var_dumpprint_r 进行调试等)由于您需要评估的内容不是纯 PHP(它是带有 PHP 的 HTML),您需要将 PHP 嵌入关闭并(重新)打开标签,如@Borealid 所示。

    【讨论】:

    • 我正在为营销团队构建一个非常简单的 CMS 系统,他们是唯一可以访问数据库中的内容的人,我怀疑他们会毁掉自己的网站。 :)
    • 总有替代方案。例如,其中一个有百万个半的模板包。
    • @Alex - 这么说吧,eval 是一种偶尔需要的邪恶——只要你意识到它可能造成的麻烦,那么至少你知道你正在陷入什么困境。 :-)
    • 这似乎是我所需要的,我只是无法理解如何在我的代码中实现它(对不起,我对 PHP 很陌生)
    猜你喜欢
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 2017-09-20
    • 2013-11-13
    • 1970-01-01
    • 2018-05-09
    相关资源
    最近更新 更多