从数据库回显html+php

从数据库回显html+php,php,echo,Php,Echo,我在一个处理大量HTML文本的网站上工作,所以最近我学习了PHP,并将它们移到了MySQL数据库中,并回应了特定章节的内容。现在它工作得比较好,HTML显示正确。然而,在某些部分中,我包含了PHP函数调用,这些函数调用似乎没有被计算过——相反,它们只是被插入到源代码中,因此对于页面查看器是不可见的,从来没有做过任何事情。当它们是简单的.html文件时,它们确实可以工作 我怎样才能解决这个问题 例如,文本可以如下所示: <?php printChapterName(); ?> <

我在一个处理大量HTML文本的网站上工作,所以最近我学习了PHP,并将它们移到了MySQL数据库中,并回应了特定章节的内容。现在它工作得比较好,HTML显示正确。然而,在某些部分中,我包含了PHP函数调用,这些函数调用似乎没有被计算过——相反,它们只是被插入到源代码中,因此对于页面查看器是不可见的,从来没有做过任何事情。当它们是简单的.html文件时,它们确实可以工作

我怎样才能解决这个问题

例如,文本可以如下所示:

<?php printChapterName(); ?>
<p>Some text</p>
...
<?php showImage($name, $alt-text); ?>
...
这只是显示页面上的文本


编辑:函数是echo:ing一些HTML。

好吧,你是在回显那些调用,这就是为什么它们会被写入而不会被解释

我想你应该重新考虑一下在数据库中保存文本的方式。当您可以简单地存储 例如,这是一个粗略的例子,但你可以理解:

$res = mysql_query("SELECT text, image FROM contents WHERE id_pag = ".$id);
$row = mysql_fetch_array($res);
// Output the image
echo '<img src="'.$row['image'].'" />'. $row['text'];

嗯,你在回应那些电话,这就是为什么他们被写下来而不是被翻译

我想你应该重新考虑一下在数据库中保存文本的方式。当您可以简单地存储 例如,这是一个粗略的例子,但你可以理解:

$res = mysql_query("SELECT text, image FROM contents WHERE id_pag = ".$id);
$row = mysql_fetch_array($res);
// Output the image
echo '<img src="'.$row['image'].'" />'. $row['text'];

使用,以便PHP评估来自数据库的代码。请注意,这本身就是危险的,除非您是唯一负责PHP代码的人。还要确保在当前页面中定义了这些函数。

使用这些函数,以便PHP对来自数据库的代码进行求值。请注意,这本身就是危险的,除非您是唯一负责PHP代码的人。还要确保在当前页面中定义了这些函数。

这一个函数应该执行您想要的操作:函数evalInlinePHP并在preg\u replace\u回调中使用它


但请注意,将php函数存储在DB中,然后对其进行评估并不是一个好主意。您应该重新考虑如何存储和显示这些文本,这一个应该做您想要做的事情:函数evalInlinePHP并在preg\u replace\u回调中使用它


但请注意,将php函数存储在DB中,然后对其进行评估并不是一个好主意。您应该重新考虑如何存储和显示这些文本

使用eval时要非常小心,它可能会导致灾难。正如我所说的,重新考虑你的内容的存储,它可能需要更长的时间,但最终你会有一个更清洁的产品。Eval是危险的,但就回答这个问题而言,这是正确的答案。在使用Eval时要非常小心,它可能会导致灾难。正如我所说,重新考虑你的内容的存储,可能需要更长的时间,但最终你会有一个更清洁的产品。Eval是危险的,但就回答问题而言,这是正确的答案。我制作了该功能,因此它将是一个简捷的方法,用于居中和包括我保存图像的路径,因此,如果我将来更改它,我就不必逐一浏览每一页。这似乎是一个有趣的想法,但大多数页面没有图像,有些页面有两个等+1用于重新思考db设计。将代码和/或标记存储在数据库中是一个非常糟糕的决定,而且本质上dangerous@pg-嗯,如果你不知道你的页面是什么样子的话,很难给你一个精确的解决方案。。。但是一个选项是将图像保存为[img]images/test.jpg[/img]。检索文本时,只需使用preg_replace将[img]xxx[/img]更改为或类似的内容。这是一个有趣的想法。但这不是我唯一的函数调用,所以它只解决了一个问题。很多论坛都使用这种策略。你可以制作你喜欢的所有标签,[img]、[list]、[table]等等。它可以是更复杂的事情,例如在我的网站上,我使用一个[map long,lat,zoom]标签,在要求的坐标/缩放级别显示谷歌地图。这是一个比使用evil eval更安全的选项:我创建了这个函数,因此它可以简化居中和保存图像的路径,这样,如果我将来更改它,我就不必单独浏览每一页。这似乎是一个有趣的想法,但大多数页面没有图像,有些页面有两个等+1用于重新思考db设计。将代码和/或标记存储在数据库中是一个非常糟糕的决定,而且本质上dangerous@pg-嗯,如果你不知道你的页面是什么样子的话,很难给你一个精确的解决方案。。。但是一个选项是将图像保存为[img]images/test.jpg[/img]。检索文本时,只需使用preg_replace将[img]xxx[/img]更改为或类似的内容。这是一个有趣的想法。但这不是我唯一的函数调用,所以它只解决了一个问题。很多论坛都使用这种策略。你可以组成你喜欢的所有标签,[img]、[list]、[table]等等。它可以更复杂
例如,在我的网站上,我使用了一个[map long,lat,zoom]标签,在请求的坐标/缩放级别显示谷歌地图。这是一个比使用邪恶评估更安全的选择:函数本身不存储在数据库中,只存储调用。这仍然是个坏主意吗?函数本身不存储在数据库中,只存储调用。这还是个坏主意吗?