如何使用textarea获取csv文件/分隔数据?

时间:2012-03-20 17:05:13

标签: php javascript html

我想用html格式的textarea来获取分隔数据

例如: 简单数据如下

testA@testa.com peter USA 
testB@testB.com Tony USA 
testC@testC.com tom USA 
testA@testa.com peter USA
testA@.com peter USA

问题是:

  1. 如何检查每条线的结束位置? (\ n)的

  2. 如何进行重复检查(仅适用于电子邮件)? (如果每行3个数据,得到1,4,7,11 ......数据和array_unique?)

  3. 我应该限制分词符号还是我要自动检查?

  4. 如果空间是分隔符,但同时我的其他数据,例如。使用空间,例如托尼汉克斯?

  5. 感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

首先,我会逐行分割:

$r = explode(PHP_EOL, $data); //data is your raw data from textarea

要检查分隔符,请使用可能的所有分隔符分解第一行并检查数组计数。

foreach( array(' ', ';', '/') as $delimiter) {
  $x = explode($delimiter, r[0]);
  if(count($x) == 3) {
    break;
  }
}

之后在原始数据上使用带有str-getcsv的正确分隔符:http://www.php.net/manual/en/function.str-getcsv.php

  

如果空间是分隔符,但同时我的其他数据,例如。使用空间,例如Tony Hanks?

在这种情况下,您需要使用引号。如果没有引号,Excel也无法处理。

  

如何进行复制检查(仅适用于电子邮件)?

创建密钥是电子邮件的数组。迭代解析后的csv并检查是否已设置密钥。