我遇到了一个使用php函数fgetcsv()
和echo
从csv文件创建html的函数的麻烦。
以下是代码:
<?php function getContent($data) {
if (($handle = fopen($data, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
echo <p>...</p>
}
}
} ?>
它输出一个html表然后,我想将它与函数fwrite()
一起使用,将它写入我刚创建的新html文件中。现在,我只是尝试将它用作这样的变量:
$content = getContent($data);
fwrite($file, $content);
但它不起作用......有什么想法吗?
P.S:我在getContent函数中有很多echo
,这就是为什么我不想使用变量。
答案 0 :(得分:1)
(免责声明:我理解你当前的函数确实回显了你想要的东西,所以我假设你的echo线被修改为这个例子,它包含真实的$data
,对吗?)< / p>
Echo打印到屏幕,你不想这样,所以保存并将其作为字符串返回。 快速示例:
function getContent($data) {
$result = ""; //you start with an empty string;
if (($handle = fopen($data, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$result .= "<p>...</p>"; //add what you used to echo to the string
}
}
return $result; //send your string back to the caller of the function
}
现在您可以调用该函数并使用您的字符串执行操作。首先,使用echo
:
$content = getContent($data); //gets you the data in a string
echo $content; //echoes it, just like you did before.
如果它有效且你有东西可以写你的内容(显然必须明确定义$file
,你可以做你做的事情:
$content = getContent($data); //still gets you the data
fwrite($file, $content); //writes it to a file.
现在,如果写入不起作用,您应该首先使用硬编码的字符串对其进行调试,但是在这个问题上没有太多问题。
答案 1 :(得分:0)
我最终使用变量echo
更改了我的$text
,我将其连接起来$text .= "<p>...</p>"
之后,我只需要使用此变量来创建html文件。