首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP fgetcsv转义'\‘

PHP fgetcsv转义'\‘
EN

Stack Overflow用户
提问于 2011-11-16 18:57:26
回答 6查看 6.8K关注 0票数 7

csv文件的一条记录中包含一个'\‘字符,我无法获得数组中键值对的确切数量。

我使用PHP fgetcsv函数,如下所示-

代码语言:javascript
复制
 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
   ....
 }

我也尝试过转义字符,如下所示。

代码语言:javascript
复制
 while (($data = fgetcsv($handle, 1000, ",",'"',"\\")) !== FALSE) {
    ....
 }

但这不是work.What可能的解决方案吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-06 14:51:27

代码语言:javascript
复制
$handle = @fopen($filename, "r");
if ($handle) {
    while (($buffer = fgets($handle, 4096)) !== false) {
        $buffer = preg_replace('/(\\\",)/','\\ ",',$buffer);
        $buffer = preg_replace('/(\\\"("?),)/',' ',$buffer);
        $data[] = str_getcsv($buffer);
    }
    if (!feof($handle)) {
        echo "Error: unexpected fgets() fail\n";
    }
    fclose($handle);
}
票数 5
EN

Stack Overflow用户

发布于 2016-04-03 07:33:12

我也有同样的问题,而且解决起来太容易了。如果您的字符串括起字符是'"‘(双引号),并且您不想将反斜杠视为转义字符,则只需将双引号作为字符串封闭字符和转义字符通知两次。

代码语言:javascript
复制
    $data = fgetcsv($handle, 8192, ';' , '"' , '"'  );
票数 11
EN

Stack Overflow用户

发布于 2011-11-16 19:03:00

您可能需要手动修复该文件。如果文件只有一个斜杠,这是最快的。

许多程序无法正确导出为csv格式。

如果这是经常发生的事情,您可能希望在导入信息时修复源或更正信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8150549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档