beingsane
5/13/2014 - 3:01 PM

gistfile1.aw

	/**
	 * Import a CSV file.
	 *
	 * @param   string   $fileName  The name of the file to import. If omitted, the state is used.
	 * @param   integer  $offset    The number of lines/rows to ignore (default = 0).
	 *
	 * @return  void
	 *
	 * @since   1.0
	 * @throws  InvalidArgumentException if file name is invalid or does not exist.
	 */
	public function import($fileName = null, $offset = 0)
	{
		if (empty($fileName) || !is_file($fileName))
		{
			throw new InvalidArgumentException(sprintf('%s(%s).', __METHOD__, $fileName));
		}

		$file = new SplFileObject($fileName);
		$file->setFlags(SplFileObject::READ_CSV | SplFileObject::SKIP_EMPTY);
		// Adjust delimiters, etc, as required.
		//$file->setCsvControl(';');

		foreach (new LimitIterator($file, $offset) as $row)
		{
			// Work on the row.
		}
	}