Javascript 使用php“;fputcsv”;将papa.unpasse创建的数组(包括具有特殊字符的单元格)保存为csv

Javascript 使用php“;fputcsv”;将papa.unpasse创建的数组(包括具有特殊字符的单元格)保存为csv,javascript,php,csv,papaparse,Javascript,Php,Csv,Papaparse,尽管关于stackOverflow有各种各样的php/csv答案,但我看不到确切问题的答案。 我有以下php脚本,它是从javascript调用的–通过AJAX XMLHttpRequest()将数组保存为csv文件。我使用javascript用符号“~”分隔行,用逗号分隔单元格。我的问题是某些数组单元格包含特殊字符。我尝试了许多不同的方法,但都没有成功,使用JavaScript将单元格文本括在双引号中,并使用不同的分隔符(即,而不是逗号)。但是,我更愿意使用Papa.unpasse创建一个变量

尽管关于stackOverflow有各种各样的php/csv答案,但我看不到确切问题的答案。 我有以下php脚本,它是从javascript调用的–通过AJAX XMLHttpRequest()将数组保存为csv文件。我使用javascript用符号“~”分隔行,用逗号分隔单元格。我的问题是某些数组单元格包含特殊字符。我尝试了许多不同的方法,但都没有成功,使用JavaScript将单元格文本括在双引号中,并使用不同的分隔符(即,而不是逗号)。但是,我更愿意使用Papa.unpasse创建一个变量,该变量包含作为完全格式化的csv的数组。该变量用逗号等正确地将单元格括在一组双引号中。但是,我不知道是否有办法更改我当前的php脚本以接受单个(csv格式)变量作为csv文件写入

<?php
if(isset($_POST["Row"])){
    $rlist = $_POST["Row"];
    $fname =($_POST["Fname"]);
    $rArray = explode("~",$rlist);
    $totalR = count($rArray);
    $fp = fopen($fname, 'w');
    for($i =0; $i<$totalR;$i++){
        $row = $rArray[$i];
        $srow =explode(",",$row); 
        array_push($srow,"\n");
        fputcsv($fp,$srow); 
    }
fclose($fp);
}
?>

更改php,使其搜索的逗号分隔符为任意奇数字符序列

$srow =explode(",",$row);
改为

$srow =explode("<XX>",$row);
$srow=explode(“,$row”);
然后将papa.unpasse的配置更改为:

{
    delimiter: "<XX>",
    header: false,
    newline: "~",
}
{
分隔符:“”,
标题:false,
换行符:“~”,
}

更改php,使其搜索的逗号分隔符为任意奇数字符序列

$srow =explode(",",$row);
改为

$srow =explode("<XX>",$row);
$srow=explode(“,$row”);
然后将papa.unpasse的配置更改为:

{
    delimiter: "<XX>",
    header: false,
    newline: "~",
}
{
分隔符:“”,
标题:false,
换行符:“~”,
}

1。你必须更加明确这些“特殊角色”是什么。2.不要破坏格式。CSV在几乎所有方面都相当灵活,除了“行由换行符分隔”。如果您使用的不是
\n
的东西进行定界,那么大多数CSV编码器/解码器将无法正常工作。谢谢您的时间。主要的问题是逗号,但数据是由用户输入的,有些是西班牙语,有自己的字符。因此,我希望它尽可能健壮。我假设papa.unbase在创建所附引号和\n时相当健壮。所以我只需要知道如何获取一个完整csv格式的变量(由pap.unparse创建),并修改上面的php脚本以处理单个变量。1。你必须更加明确这些“特殊角色”是什么。2.不要破坏格式。CSV在几乎所有方面都相当灵活,除了“行由换行符分隔”。如果您使用的不是
\n
的东西进行定界,那么大多数CSV编码器/解码器将无法正常工作。谢谢您的时间。主要的问题是逗号,但数据是由用户输入的,有些是西班牙语,有自己的字符。因此,我希望它尽可能健壮。我假设papa.unbase在创建所附引号和\n时相当健壮。所以我只需要知道如何获取一个完整csv格式的变量(由pap.unparse创建),并修改上面的php脚本以处理单个变量。