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; }