让我们从一篇关于静态页面(Test.php)的文章开始,该文章包含另一个充满PHP代码的文件(Code.php)。 Code.php上的一些echo值在食物链上方的第三个文件(Values.php)上声明。
一切正常 - 直到我从Test.php中取出文章,将其插入数据库并通过回显$ Content来显示它。现在我的include不起作用,因为你不能把PHP包含在数据库中。 (或者也许你可以,但它显然几乎不可能,每个人都尖叫不要做它!)
我刚学会了如何使用file_get_contents:
$Content = str_replace('<p id="1"', '.file_get_contents($BaseINC."/inc/Test.php").'<p id="1">', $Content);
它很好用,只是它只显示静态文本 - 没有PHP代码。
然后我学会了如何解析文件,如下:
file_get_contents("http://MySite/Test.php")
效果更好。我可以回复$ Something,只要在Test.php中定义$ Something ...
$Something = 'Cool!';
echo $Something;
问题是在单独的文件(例如Values.php)上定义的所有回显值不再起作用,显然是因为我从流中删除了Test.php。有没有办法以某种方式重新连接Test.php与Code.php,以便那些回声值将重新获得他们的值?或者还有其他方法可以完成我想要做的事情吗?
无论价值多少,大多数缺失值都是由数据库查询创建的。一种解决方法是根据每个页面的URL重新创建值。具有讽刺意味的是,我尝试过显示页面URL的所有脚本都不起作用;相反,它们显示Test.php的路径。所以我真的很困惑。
答案 0 :(得分:0)
我试图说明包含php文件的不同方法:
<?php
//Test.php
$bar = 'orange'; echo $bar;
<?php
// Example.php
echo file_get_contents("Test.php") // $bar = 'orange'; echo $bar;
echo file_get_contents("http://example.com/Test.php") // orange
// Probably not correct, big security risk https://www.owasp.org/index.php/Code_Injection
include("Test.php") // orange