在数据库内容中插入包含

时间:2014-03-27 15:39:22

标签: php mysql

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

这不起作用......

$BaseINC = '../../Geobop';
$Content = str_replace('<p>In fact, you', ''.require_once($BaseINC."/$MyPHP/inc/A/Test.php").'',     $Content);

显示错误警告:require_once(../../ Geobop / 2B / inc / A / Test.php

实际上,你)[function.require-once]:失败open stream:如果我将A / Test.php改为A / Test.php;)(添加分号),它会再次失败。

如果我删除了我试图替换的字符串,它就可以解决问题。

$BaseINC = '../../Geobop';
$Content = str_replace('<p>In fact, you', ''.require_once($BaseINC."/$MyPHP/inc/A/Test.php").'',     $Content);

奇怪的是,它取代 [p]实际上,你的数字 1 ,我在测试文件中插入了文本(Test.php)显示在页面顶部。

谁能告诉我我做错了什么?

我还应该提一下,Test.php实际上位于一个网站(MySite1)上,而我预览的文章则位于另一个网站上。但是,我的所有网站都包含存储在MySite1上的文件。我已经收录了数千个文件;我还没想办法用str_replace操作来做这件事。感谢。

1 个答案:

答案 0 :(得分:1)

我认为你不想要页面,而是想要字符串中的内容,对吗?在这种情况下,您应该使用file_get_contents($filename)代替。这将返回一个字符串,该字符串可用作str_replace的参数。如果没有错误,require将返回1。它不返回其内容(!);除非使用return statement从该文件显式返回。

把它变成:

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

使用requireinclude不会在字符串中显示其内容。相反,它运行其中的代码。如果是PHP,则执行它。如果是HTML,则输出。这就是您看到字符串显示在页面顶部的原因。