将PHP HTML字符串转换为CSV

将PHP HTML字符串转换为CSV,php,csv,line-breaks,Php,Csv,Line Breaks,绕圈子,希望有人能纠正我 通过PHP生成CSV并使用MySQL中的数据。数据是由用户通过TinyMCE输入的,因此有各种“p”标签等,我显然需要去掉这些标签,我可以成功地做到这一点,但是csv中的字符串即使在去掉后仍会显示在各种不同的单元格中 我尝试过使用strip_tags()和preg matching“/n”和“/r”以及各种方法来删除换行符,但没有成功,因为它仍然出现在新的单元格上 我在csv中使用分号作为分隔符 我试图从中剥离所有html的字符串示例是,我想加入,因为它看起来很有趣。帮

绕圈子,希望有人能纠正我

通过PHP生成CSV并使用MySQL中的数据。数据是由用户通过TinyMCE输入的,因此有各种“p”标签等,我显然需要去掉这些标签,我可以成功地做到这一点,但是csv中的字符串即使在去掉后仍会显示在各种不同的单元格中

我尝试过使用strip_tags()和preg matching“/n”和“/r”以及各种方法来删除换行符,但没有成功,因为它仍然出现在新的单元格上

我在csv中使用分号作为分隔符

我试图从中剥离所有html的字符串示例是
,我想加入,因为它看起来很有趣。

帮助我。

。只有当它们的字符串不止一个标记或其他内容时才会发生这种情况——如果字符串只是一行,则不会出现任何问题

以下是我正在使用的csv代码:

    echo 'Username;Email;Date joined;Reason for joining'."\r\n";

    foreach($users as $user) {
        $csv_data .= $user->username . ';' . $user->email. ';' . date("d/m/y", $user->time_created) . ';' .  $user->reason_for_joining  .';'."\r\n";
    }

    echo $csv_data;
我哪里做错了


谢谢大家:)

CSV格式的陷阱比你想象的要多(正如你所经历的那样)。因此,不要重新发明轮子并使用它,它正确地逃避了所有需要逃避的事情

fputcsv
希望写入一个文件,但您可以给它一个伪文件来代替,如下所述:

您忘记了第一次回音的“\r”, 应该是:

echo 'Username;Email;Date joined;Reason for joining'."\r\n"; echo的用户名;电子邮件;加入日期;加入“.”的原因。\r\n;
最好在“for”循环之前将$csv_数据设置为空白


如果“用户名”、“电子邮件”、“加入原因”中有分号,
代码将生成格式错误的csv。

最好在“for”循环之前将$csv\u数据设置为空,如果“username”、“email”、“reason\u for\u joining”中有分号,代码将生成格式错误的csvThanks@nicola-我纠正了我的错误。但是仍然没有运气,我可以确认分号不存在:)。正如我所知,TinyMCE生成的html中总是有许多“”,您可以在问题中加入的原因示例中看到此“”。此“”包含分号。也许这就是为什么?我试着移除了nbsp;但还是没有运气。然而@deceze建议奏效了!谢谢@nicolaThanks@deceze。我通过php这样创建csv文件:header(“内容类型:application/csv”);标题(“内容处置:附件;文件名=users.csv”);。我还可以使用fputcsv吗?@那请再看一次我的更新,我愚蠢地使假文件编写比它需要的更复杂。您可以直接写入输出缓冲区,而无需通过临时文件。我们正在到处寻找这个答案。我开始认为我必须输出到一个文件,然后使用file\u get\u内容来显示它。非常感谢。 echo 'Username;Email;Date joined;Reason for joining'."\r\n";