#!/usr/bin/php -f: required, CSV filename to convert USAGE; exit; } $handle = fopen($options['f'], 'r'); if(!$handle) { echo 'Unable to open file '.$options['f'].' !\n'; exit; } // root name is filename without extension $name = preg_replace("~^(.*\/)?(.*?)\.csv$~xsi", "$2", $options['f']); $xml = new SimpleXMLElement('<'.$name.'s>'); $headers = fgetcsv($handle, 10000, ';'); while($row = fgetcsv($handle, 10000, ';')) { $element = $xml->addChild($name); for($n = 0; $n < count($headers); $n++) { $value = trim( preg_replace( "~^\"?(.*?)\"?$~", "$1", $row[$n] ) ); $value = preg_replace("~(\&)~", "\&", $value); $element->addChild( $headers[$n], $value ); } } // save file $xml->asXML($path.$name.".xml"); fclose($handle); ?>