2012-03-20 62 views
1

我想用一个textarea的HTML表单获得分隔的数据如何使用textarea获取csv文件/分隔数据?

例如: 简单的数据就像下面

[email protected] peter USA 
[email protected] Tony USA 
[email protected] tom USA 
[email protected] peter USA 
[email protected] peter USA 

的问题是:

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

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

  3. 我应该限制deliminator符号还是自己做一些检查?

  4. 如果空间不足,但同时我的其他数据如。正在使用例如空间托尼汉克斯?

谢谢你的任何形式的帮助

回答

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

什么如果空间deliminator,但同时我的其他数据,例如。正在使用例如空间托尼汉克斯?

在这种情况下,您需要使用引号。 Excel也不能处理这个没有引号。

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

创建数组,其中键是电子邮件。遍历解析的csv并检查key是否已设置。

相关问题