php中的文本文件与数组

时间:2014-03-06 15:34:31

标签: php arrays fopen fputs

我有一个文本文件data.txt,其中包含“引号”用逗号分隔中的字词,如下所示:

  

“企业邮箱”, “ID_NAME”, “城市”, “姓名”, “姓名”, “怎么做”, “日期”   “my@exemple.com”, “125”, “NY”, “井”, “汤米”, “”, “20130101”   “hisgoodemail@exemple.com”, “132”, “NY”, “等待”, “约翰”, “”, “20120101”   “hisbadmailxemple.com”, “325”, “CH”, “井”, “唐”, “”, “20130101”   “goodmail3@exemple.com”, “222”, “NY”, “羊毛”, “约翰”, “”, “20140101”

我会删除不良记录/注册的电子邮件标准,例如我注册/记录。

所以我检查了电子邮件格式,并删除了包含错误格式电子邮件的错误记录。

我希望将新数据放在另一个文件TEXT中,其中在“引号”中并用逗号分隔,如下所示:

  

“企业邮箱”, “ID_NAME”, “城市”, “姓名”, “姓名”, “怎么做”, “日期”   “my@exemple.com”, “125”, “NY”, “井”, “汤米”, “”, “20130101”   “hisgoodemail@exemple.com”, “132”, “NY”, “等待”, “约翰”, “”, “20120101”   “goodmail3@exemple.com”, “222”, “NY”, “羊毛”, “约翰”, “”, “20140101”

但是当我将新数据放入新文件时,它缺少“引号”和逗号

    $fileData = 'data.txt';
if (($handle = fopen($fileData, "r")) !== FALSE) 
{
fgetcsv($handle, 0, ',');

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
    {
        $arrayContainsFileData = array
        (
            'e_mail' => $data[0],
            'id_name' => $data[1],
            'city' => $data[2],
            'name' => $data[3],
            'firstname' => $data[4],
            'how' => $data[5],
            'date' => $data[6]
        );
        //      var_dump($arrayContainsFileData);
        //        exit();

        $e_mail = $arrayContainsFileData['e_mail'];
        $e_mail = str_replace(' ', '', $e_mail);

        //remove bad record/registration with the criterion of email
        if(!VerifyEmailFormat($e_mail))
        { //echo 'bad format'';
            unset($arrayContainsFileData['e_mail']);
            unset($arrayContainsFileData['id_name']);
            unset($arrayContainsFileData['city']);
            unset($arrayContainsFileData['name']);
            unset($arrayContainsFileData['firstname']);
            unset($arrayContainsFileData['how']);
            unset($arrayContainsFileData['date']);
        }

        //          var_dump($arrayContainsFileData);
        //        exit();   

        $creationNewData = 'newCleanData' . date('Y_m_d__H_i_s__u'). '.txt';
        $openNewData = fopen($creationNewData, "a+");
        foreach ($arrayContainsFileData as $value)
            {
            fputs($openNewData, $value.' ');
            }
        fclose($openNewData);
    }
}
//__halt_compiler

我该如何将这些单词放在“引号”中并用逗号分隔?

1 个答案:

答案 0 :(得分:0)

您可以使用php implode函数(http://ca3.php.net/implode)将每个数组首先转换为字符串,而不是循环遍历数组的每个元素。

$str = '"' . implode('","', $arrayContainsFileData) . '"';
fputs($openNewData, $str);