我正在尝试创建一个网站,人们将CSV文件直接粘贴到textarea(称为“原始文本”)并解析它,然后我的脚本生成一些东西。我知道如何解析服务器上的csv文件(使用fgetcsv)但不知道如何从POST变量INTO获取fgetcsv的输入。到目前为止,我已经尝试过类似的东西,但无济于事:
$file_handle = fopen("php://input", "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle);
echo $line_of_text[0] . '<br />';
}
答案 0 :(得分:6)
fgetcsv()
有一个名为str_getcsv()的堂兄,应该完全按照您的需要做。通常,精彩的命名(一次没有,一次用下划线)。呃,好吧!但我们仍然喜欢PHP,不是我们。
示例(没有卫生设施!!!此时我看不到任何必要的内容。)
$array_csv = str_getcsv($_POST["csv"]);
答案 1 :(得分:2)
Pekka's example适用于单行CSV数据。如果用户输入多行CSV数据,您必须首先将其内爆到一个数组中(下面的示例中为“$ lines”),然后遍历该行并使用str_getcsv解析每一行:
$array_csv = array();
$lines = explode("\n", $_POST["csv"]);
foreach ($lines as $line) {
$array_csv[] = str_getcsv($line);
}
}