как использовать fgetcsv со строками

Как использовать 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); 

Можешь попробовать

 str_getcsv() 

str_getcsv

Поскольку это не вариант, это ответ, который может помочь, или указать вам в правильном направлении:

String to filehandle Не уверен, что это сработает для вас.