使用PHP解析textarea输入,好像它是一个csv?

时间:2010-02-11 18:24:59

标签: php csv input

我正在尝试创建一个网站,人们将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 />';
}

2 个答案:

答案 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);
  }
}

请参阅:parse csv to multidimensional array