This question already has answers here:
Is there a way to access a string as a filehandle in php?

(5 个回答)


5年前关闭。




如何在输入是字符串而不是资源的情况下使用 fgetcsv

如何将字符串转换为资源?
fgetcsv 需要一个文件句柄资源
$str = "1981;2992;19191\n392;488;299\n"some\ntext";199;222";
$array = fgetcsv($str);

不能使用 str_getcsv 因为那样我必须在 \n 之前用 str_getcsv 分割字符串 .. 如果某些字段包含 \n 那么输出将不正确

最佳答案

str_getcsv 函数,它可以将 CSV 字符串解析为数组。

更新:如果您不能使用 str_getcsv 函数,请尝试将字符串转换为流并在 fgetcsv 中使用它:

$stream = fopen('php://memory', 'r+');
fwrite($stream, '1981;2992;19191\n392;488;299');
rewind($stream);
$array = fgetcsv($stream);

10-08 19:15