我有一个我管理的博客,主要是纯文本,其中包含一些HTML。在检索该博客的文本以供显示时,我想在该文本中执行一行PHP代码,同时希望避免在我的数据库中放置PHP代码。我使用MySQL。
在大多数情况下,PHP代码类似<? include "phpfile.php"; ?>
。我会用它来插入增强功能,如民意调查,幻灯片等等。
过去,我依靠iframe来保存PHP文件。
This is the blog text. <a id='marker'></a>
This is the second part of the blog text.
我使用“preg_replace()”将我的标记(<a id='marker'></a>
)替换为iframe的代码。这产生以下内容,我用PHP回到我的页面:
This is the blog text. <iframe src='phpfile.php'></iframe>
This is the second part of the blog text.
这很好用,但我希望能够在没有必须猜测iframe内容的iframe的高度和宽度的约束下工作。
在阅读其他主题/问题时,我考虑过这些:
用户拥有后将PHP代码插入我的数据库 进入他的博客(坏主意)
在用代码替换“标记”后,使用“eval”以某种方式执行我的PHP代码?我不确定如何一步到位。我想我必须做下一个方法。 (我认为应该尽可能避免“eval()”!!!)
将博客文本分成两部分(保存在变量中)。我可以用include "phpfile.php";
分隔连续的“echo”语句(每个博客部分一个)。我不确定这对我的服务器有多大的内存密集 - 我会处理大约50kb的文本块。
除了最后一种方法之外,我觉得必须有一种更简单的方法来插入PHP代码并执行它。
任何建议。
答案 0 :(得分:0)
你可以简单地使用str_replace来解决这个问题:
你的文字:
Hello world, i want [phpcode] here
脚本:
<?php $text = str_replace( "[phpcode]", phpcode(), $text);
然后在您的代码中定义phpcode()并执行您想要的任何操作。
您也可以使用正则表达式更改此项,并将“[]”之间的文本替换为函数名称:
Hello world,我想在这里[php:functionName]