Php 如何将fgetcsv与字符串一起使用

Php 如何将fgetcsv与字符串一起使用,php,csv,Php,Csv,如果输入是字符串而不是资源,如何使用fgetcsv 如何将字符串转换为资源 fgetcsv需要一个文件句柄资源 $str = "1981;2992;19191\n392;488;299\n"some\ntext";199;222"; $array = fgetcsv($str); 无法使用str\u getcsv,因为这样我必须在str\u getcsv之前按\n拆分字符串。。如果某些字段包含\n,则输出将不正确如果有函数,它可以将CSV字符串解析为数组 更新:如果无法使用str_getcsv

如果输入是字符串而不是资源,如何使用
fgetcsv

如何将字符串转换为资源

fgetcsv
需要一个文件句柄资源

$str = "1981;2992;19191\n392;488;299\n"some\ntext";199;222";
$array = fgetcsv($str);
无法使用
str\u getcsv
,因为这样我必须在
str\u getcsv
之前按
\n
拆分字符串。。如果某些字段包含
\n
,则输出将不正确

如果有函数,它可以将CSV字符串解析为数组

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

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

str_getcsv()

因为这不是一个选项,所以这里有一个答案可能会有帮助,或者为您指明正确的方向:

不确定这是否对你有用
祝你好运。

你能用
替换
\n
然后使用
str_getcsv()
作为您的分隔符?否。。不可能。。输出将不正确
\n
是字段的一部分..是否尝试分解(“;”,$str);作为一种解决方法?你能解释一下你的预期输出是什么吗?要将端点作为字段的一部分(它们靠近字段)还是作为实际端点?在你的例子中说,
“1981;2992;19191\n392;488;299\n”一些文本;199;222“
将翻译成
$result=[“1981”、“2992”、“19191\n392”等]
$result1=[“1981”、“2992”、“19191”],$result2=[“392”、“488”、“299”等]
@clarkk好的,请看我的更新,希望对汉克斯有所帮助。。这正是我想要的