我在这里遇到了一个关于如何将mysql输出到表中的优秀教程http://coursesweb.net/php-mysql/display-data-array-mysql-html-table_t。
我搜索了这篇文章,因为我想从1列到3列。一切都很好,除了我想在串联中包含一个文件。我正在尝试执行以下操作:
$html_table .= '<td>';
$html_table .= '' . include('data.php') . '';
$html_table .= '</td>';
然而,这不起作用。例如,如果data.php文件包含一些简单的文本,例如test,我会在屏幕上显示以下内容:
测试测试测试测试测试测试测试测试
1 1 1
1 1 1
1 1 1
非常奇怪的是,如果我做了一点测试,而是输入:
$html_table .= '<td>test</td>';
这绝对没问题,输出如下:
测试测试
测试测试
测试测试
我在这个上下文中查找了有关使用include()的信息,但我什么也没找到。我需要包含文件的原因是因为我试图输出的数据包含大量文本。有人可以建议吗?
答案 0 :(得分:1)
如果您只想获取文件内容,请使用file_get_contents代替include
。
data.txt中:
test
在您当前的文件中:
$html_table .= '' . file_get_contents('data.txt') . '';
请注意,文件名已从data.txt
更改为data.php
以避免混淆,因为它不包含任何PHP代码。
如果你真的打算在data.php
中运行一些代码来返回一个字符串,你需要在调用该函数之前将它包装在一个函数中并include
该文件:
data.php:
<?php
function getData() {
return "test";
}
?>
在您当前的文件中:
include('data.php');
$html_table .= '<td>';
$html_table .= '' . getData() . '';
$html_table .= '</td>';
当然,您可能希望删除空字符串连接。
修改强>
正如您在评论中所说,data.php
包含HTML和PHP的混合,您可能希望在运行时使用输出缓冲来获取data.php
的输出。
data.php:
This is a mixture of <b>HTML</b> and <?php echo "PHP"; ?> code
在您当前的文件中:
function getIncludeOutput($file) {
ob_start();
include $file;
return ob_get_clean();
}
$html_table .= '<td>';
$html_table .= getIncludeOutput('data.php');
$html_table .= '</td>';
echo $html_table;
输出:
<td>This is a mixture of <b>HTML</b> and PHP code</td>