我正在Zend中构建一个网站,该网站需要能够通过文件上传来上传电子邮件地址列表。这将最终填充分发列表表。
我想要做的是让用户填写表格,包括附件,然后在提交时,我将解析文件并提交文件的每一行的表格。
实施例。用户使用通讯组列表名称填写表单,并上载文件(格式正确)
在提交时,我需要解析每个电子邮件地址的文件,然后使用通讯组列表名称和新地址向表中添加一行数据。
任何想法,我都对所有建议持开放态度。
感谢您的帮助,你们真棒!
答案 0 :(得分:1)
假设您实际上已经将文件放到服务器上(如the manual中所述),那么您实际上并没有真正处理Zend,甚至是上传问题。您只是处理“在文件中读取和解析数据”问题。
首先查看PHP的filesystem documentation
假设您的文件不是很大,并且每行有一个电子邮件地址,您可能会执行以下操作:
<?PHP
$data = file_get_contents('/path/to/your/uploaded/file');
$data = explode("\n",$data);
foreach($data as $address){
//validate each address, and if valid, safely insert into your database
}
如果文件中有数千个电子邮件地址,您可能希望避免一次将它们全部加载到内存中。在这种情况下,请使用fopen,并在每行中循环/ fgets。
如果您需要解析CSV数据,fgetcsv将为您节省许多麻烦。
有关循环文件数据的更多指导,请参阅上面链接的PHP手册页中的代码示例。