在我的阅读器文件中,我检查$ _GET并从数据库中读取记录。
我有一个联系信息架构。保存在“contact.php”文件中。但在数据库中,我只是用“[contact]”作为文本。
以下是我为调用contact.php文件所做的工作:
$contactinfo = file_get_contents('contact.php');
$mydata = str_replace("[contact]", $contactinfo, $mydata);
return html_entity_decode($mydata);
这很完美。因为我的“contact.php”文件只包含HTML。
这是我的问题。我有另一个文件,“contactform.php”。此表单包含HTML和PHP方法,用于填充城市的选择输入。我的意思是,我的“contactform.php”文件是这样的:
<form>
Name: <input name bla bla>
Email: <input email bla bla>
City: <?php getcities(); ?>
<input submit bla bla>
</form>
我使用完全相同的方法。但我只得到:
<form>
Name: <input name bla bla>
Email: <input email bla bla>
City: <!-- <?php getcities(); ?> -->
<input submit bla bla>
</form>
我的PHP部分转换为评论行。其他部分工作正常。我该如何解决这个问题?
答案 0 :(得分:0)
如果您可以使用某种正则表达式单行,eval()就可以了。
答案 1 :(得分:0)
您需要更改逻辑并将file_get_contents替换为require或include OR require_once OR include_once。
您需要更改代码
ob_start( );
require('contact.php');
$contactinfo = ob_get_clean( );
$mydata = str_replace("[contact]", $contactinfo, $mydata);
return html_entity_decode($mydata);
或者如果使用ob_get_contents
ob_start();
echo "You main script, before contact ";
ob_start();
echo "contact form";
$ob_2 = ob_get_contents();
ob_end_clean();
echo "and after contact";
$ob_1 = ob_get_contents();
ob_end_clean();
echo "This is OB_1: ".$ob_1."\n"; //returned "This is OB_1: You main script, before contact and after contact"
echo "This is OB_2: ".$ob_2."\n"; //returned "This is OB_2: contact form"