Fgetscv, fwrite $var与分隔符字符


fgetscv, fwrite $var with delimiter character

我的fwrite()有一个小问题。

$txt=fopen("$directory","w");   
if (($handle = fopen("$directory", "r")) !== FALSE) {
   while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);
...
...

如果我写:

fwrite($txt, "Hello;");
fwrite($txt, "Test fwrite;");

.csv文件的输出如下:

Hello | Test fwrite

当我有一个包含分隔符字符的变量,但我不想将其视为分隔符时,问题就出现了。我尝试使用chr(59),但问题没有解决。

例如:

$var = "hello;test;hello;";
fwrite($txt, "Test fwrite;");
fwrite($txt, "$var;");
fwrite($txt, "Hello;");

我想要的输出是:

Test fwrite | hello; Test;hello | hello

可以在不更改字符分隔符(;)的情况下完成此操作。??

谢谢!

通过fputcsv更容易做到。

如果您的字段包含分隔符,则必须将值括起来(默认情况下使用双引号)。

"abc;def";"x";"y";"z"