脚本未遍历目录中的所有文件

时间:2018-06-23 10:30:34

标签: php csv import directory

为SuiteCRM增强编写的PHP脚本应该遍历目录中的所有文件,并将每个文件导入数据库。有很多麻烦。

脚本仅在第一个文件上读取并运行,然后在应循环时完成:(

导入工作正常,并且数据已从第一个文件添加到数据库中。

function MemberImportJob()
{
try
{
    $config = new Configurator();
    $config->loadConfig();
    $xmlDataDir =  'custom/wimporter/eidimport';      
    $directoryContent = scandir($xmlDataDir);
        //foreach ($directoryContent as $itemFile)
            foreach (glob($xmlDataDir) as $itemfile)
            {

                var_dump($itemfile);
          if (is_dir($xmlDataDir . DIRECTORY_SEPARATOR . $itemFile)) continue;
          if (strcasecmp(substr($itemFile, -4), ".csv") != 0) continue;

              $oFile = fopen($xmlDataDir . DIRECTORY_SEPARATOR . $itemFile, 'r');
          if ($oFile !== FALSE)
      {
      $header = NULL;
      $data = Array();
      while (($data[] = fgetcsv($oFile, 90000, ',')) !== FALSE) { }
      fclose($oFile);
            //combine into a nice associative array:
            $arow=Array();

            $fields = array_shift($data);
            foreach ($data as $i=>$arow)
              {
              array_combine " . $i);
              if (is_array($arow)) {
              $data[$i] = array_combine($fields, $arow);}
              }
                  unset($arow);
                  $num = count($data);

                  for ($row=0; $row < $num - 1; $row++)
                  {   
                $Member = BeanFactory::getBean("locte_Membership");
                $Member=$Member->retrieve_by_string_fields(array('last_name' => $data[$row]["LAST NAME"],   'first_name' => $data[$row]["FIRST NAME"], 'lcl_affiliate_number' => $data[$row]["AFFILIATE"]));
                $MemberID = $Member->id;
                if (is_null($Member)) {
                $Member = BeanFactory::newBean('locte_Membership');
                $delta = fillPerson($data[$row], $Member, "FULL NAME");

if(count($delta))
{
$Member_id = $Member->save();
 }
} else {
                                                                    v 
var_dump($Member->id);
$delta = fillFoundrecord($data[$row], $Member, "FULL NAME");

echo("record Updated!");
$Member_id = $Member->save();
 }
 unset($data[$row]);
 }
}
return true;
}
} catch (Exception $e)
{
  return false;
}
}

0 个答案:

没有答案