Beispiel #1
0
 function getFormat($filename)
 {
     $options = new ParseOptions();
     $fp = FileFactory::create($filename);
     $data = "";
     $format_base_type = FALSE;
     do {
         $data .= $fp->fread(64);
         $nlpos = strpos($data, "\n");
         $length = strlen($data);
     } while ($length < 1024 && !$nlpos && !$fp->feof());
     $fp->fclose();
     unset($fp);
     if ($nlpos) {
         $data = substr($data, 0, $nlpos);
     }
     $data = ltrim($data);
     if ($data[0] == "<") {
         $format_base_type = "xml";
     }
     if (strpos($data, "?xml")) {
         $format_base_type = "xml";
     }
     //set csv as the default
     if ($format_base_type === FALSE) {
         $format_base_type = "csv";
     }
     $options->setParser($format_base_type);
     $analysis_function = '\\Faker\\Parser\\Analysis\\' . strtoupper($format_base_type);
     if (class_exists($analysis_function)) {
         $fp = FileFactory::create($filename);
         $class = new $analysis_function($this->dispatcher);
         $format_parameters = $class->analyse($fp, $options);
     } else {
         throw new AnalysisClassNotFound($analysis_function);
     }
     return $format_parameters;
 }