【问题标题】:how to use fgetcsv with strings [duplicate]如何将 fgetcsv 与字符串一起使用 [重复]
【发布时间】:2015-12-29 21:51:37
【问题描述】:

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

如何将字符串转化为资源?

fgetcsv 需要一个文件句柄资源

$str = "1981;2992;19191\n392;488;299\n"some\ntext";199;222";
$array = fgetcsv($str);

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

【问题讨论】:

  • 您能否将\n 替换为;,然后使用str_getcsv(); 作为您的分隔符?
  • 不..不可能..输出会不正确
  • \n 是该字段的一部分..
  • 你试过了吗explode(';',$str);作为一种解决方法?
  • 你能解释一下你的预期输出是什么吗?您希望将端线作为它们附近的字段的一部分还是作为实际的端线?在您的示例中说"1981;2992;19191\n392;488;299\n"some\ntext";199;222" 将转换为$result=["1981","2992","19191\n392",etc]$result1=["1981","2992","19191"], $result2 = ["392","488","299",etc]

标签: php csv


【解决方案1】:

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

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

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

【讨论】:

  • @clarkk 好的,看看我的更新,希望对你有帮助
  • 谢谢..正是我想要的
【解决方案2】:

你可以试试

str_getcsv()

str_getcsv

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

String to filehandle 不确定这是否适合你 祝你好运。

【讨论】:

    猜你喜欢
    • 2016-10-26
    • 2016-04-24
    • 2020-04-23
    • 2019-02-26
    • 2023-03-31
    • 2013-12-22
    • 1970-01-01
    • 2014-11-27
    • 2021-08-16
    相关资源
    最近更新 更多