Php 在数据库内容中插入Include

Php 在数据库内容中插入Include,php,mysql,Php,Mysql,我正在使用PHP和MySQL,并通过回显$Content来显示存储在数据库中的一篇文章。我想在第二段前面加上另一个文件,它以[p]开头,实际上是你(我在这里用括号替换了段落标记) 这不管用 $BaseINC = '../../Geobop'; $Content = str_replace('<p>In fact, you', ''.require_once($BaseINC."/$MyPHP/inc/A/Test.php").'', $Content); $BaseINC=

我正在使用PHP和MySQL,并通过回显$Content来显示存储在数据库中的一篇文章。我想在第二段前面加上另一个文件,它以[p]开头,实际上是你(我在这里用括号替换了段落标记)

这不管用

$BaseINC = '../../Geobop';
$Content = str_replace('<p>In fact, you', ''.require_once($BaseINC."/$MyPHP/inc/A/Test.php").'',     $Content);
$BaseINC='../../Geobop';
$Content=str_replace(“事实上,您,”.require_once($BaseINC./$MyPHP/inc/A/Test.php”),$Content);
它显示错误警告:require_once(../../Geobop/2B/inc/A/Test.php事实上,您)[function.require once]:打开流失败:如果我将A/Test.php更改为A/Test.php;)(添加分号),它再次失败

如果我把要替换的字符串去掉,它会起到一定的作用

$BaseINC = '../../Geobop';
$Content = str_replace('<p>In fact, you', ''.require_once($BaseINC."/$MyPHP/inc/A/Test.php").'',     $Content);
$BaseINC='../../Geobop';
$Content=str_replace(“事实上,您,”.require_once($BaseINC./$MyPHP/inc/A/Test.php”),$Content);
奇怪的是,它将[p]事实上,你替换为一个数字1,我在测试文件(test.php)中插入的文本显示在页面顶部

谁能告诉我我做错了什么


我还应该提到Test.php实际位于一个网站(MySite1),而我正在预览的文章位于另一个网站。但是,我的所有网站都包含存储在MySite1上的文件。我包含了数千个文件;我只是还没有弄明白如何用stru替换操作来完成它。谢谢。

我想你不需要这个页面,而是想要一个字符串的内容,对吗?在这种情况下,您应该使用。这将返回一个字符串,该字符串可用作的参数。如果没有错误,则返回1。它不返回其内容(!);除非它是使用
返回语句
从该文件显式返回的

把它变成:

$BaseINC = '../../Geobop';
$Content = str_replace('<p>In fact, you', file_get_contents($BaseINC."/$MyPHP/inc/A/Test.php"), $Content);
$BaseINC='../../Geobop';
$Content=str_replace(“事实上,您”,file_get_contents($BaseINC./$MyPHP/inc/A/Test.php”),$Content);

使用
require
include
不会以字符串形式提供其内容。相反,它运行其中的代码。如果是PHP,则执行它。如果是HTML,则输出。这就是为什么您看到该字符串出现在页面顶部。

实际上,这可能解决了我一半的问题。它的工作原理是我现在可以包含“静态内容”,但是有没有一种方法可以包含PHP内容呢?换句话说,如果我在我的测试文件(TEST.php)上键入TEST,然后使用file_get_contents,它会显示“TEST”。但是如果我键入TEST后跟一个echo值,它不会显示echo值。获取文件的内容是有帮助的,但是有几个相当复杂的包含,有很多PHP代码,我想在这里包括。好吧,在这种情况下,您需要先解析文件。这通常可以通过http请求调用它来实现,比如:
file\u get\u contents('http://localhost/Test.php)
而不是像
文件获取内容('./Test.php')