php - 如何使用 file_get_contents 而不丢失回显值?

标签 php mysql

让我们从一篇有关静态页面 (Test.php) 的文章开始,其中包含另一个充满 PHP 代码的文件 (Code.php)。 Code.php 上的一些回显值在食物链上游的第三个文件 (Values.php) 上声明。

一切正常 - 直到我从 Test.php 中取出文章,将其插入数据库并通过回显 $Content 来显示它。现在我的包含不起作用,因为您不能将 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")

效果更好。我可以 echo $Something,只要 $Something 在 Test.php 中定义...

$Something = 'Cool!';
echo $Something;

问题是在单独文件(例如 Values.php)上定义的所有回显值不再起作用,显然是因为我已从流程中删除了 Test.php。有没有办法以某种方式将 Test.php 与 Code.php 重新连接,以便这些回显值将重新获得它们的值?或者还有其他方法来完成我想做的事情吗?

无论其值(value)如何,大多数缺失值都是由数据库查询创建的。一种解决方法是根据每个页面的 URL 重新创建值。具有讽刺意味的是,我尝试过的所有显示页面 URL 的脚本都不起作用;相反,它们显示 Test.php 的路径。所以我真的很困惑。

最佳答案

我试图说明包含 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

关于php - 如何使用 file_get_contents 而不丢失回显值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22695355/

相关文章:

php - 我需要设置 ini_set( 'default_charset' , 'UTF-8' ); 吗?

php - MongoDB PHP 驱动程序 : Query for Distinct records with Limit and Skip

javascript - 如何检查 API token 是否仍然有效

mysql - 通过匹配字段的子集来防止重复条目

mysql - 为逗号分隔的数据集选择数据库模型

php - 检查数组元素是否在不同的数组中

php - Laravel Spark 用于基于 API (AJAX) 的 Web 服务?

php - 使用 PHP 从 mysql 数据库删除行时出错

php - mysql_fetch_assoc 中的 is_numeric()

mysql - 单个查询进行选择和更新