使用php将echo放入变量中

时间:2015-01-15 11:06:04

标签: php variables echo

我遇到了一个使用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,这就是为什么我不想使用变量。

2 个答案:

答案 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文件。