Rev 18 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?php
class simple_xml_extended extends SimpleXMLElement
{
public function Attribute($name)
{
foreach($this->Attributes() as $key=>$val)
{
if($key == $name)
return (string)$val;
}
}
}
function fputcsv2 ($fh, array $fields, $delimiter = ',', $enclosure = '"', $mysql_null = true) {
$delimiter_esc = preg_quote($delimiter, '/');
$enclosure_esc = preg_quote($enclosure, '/');
$output = array();
foreach ($fields as $field) {
if (($field === null || empty($field)) && $mysql_null) {
$output[] = 'NULL';
continue;
}
$output[] = preg_match("/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field) ? (
$enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure
) : $field;
}
fwrite($fh, join($delimiter, $output) . "\n");
}
// the _EXACT_ LOAD DATA INFILE command to use
// (if you pass in something different for $delimiter
// and/or $enclosure above, change them here too;
// but _LEAVE ESCAPED BY EMPTY!_).
/*
LOAD DATA INFILE
'/path/to/file.csv'
INTO TABLE
my_table
FIELDS TERMINATED BY
','
OPTIONALLY ENCLOSED BY
'"'
ESCAPED BY
''
LINES TERMINATED BY
'\n'
*/
// get uncompressed file size for a gzip file
function gzfilesize($filename) {
$gzfs = FALSE;
if(($zp = fopen($filename, 'r'))!==FALSE) {
if(@fread($zp, 2) == "\x1F\x8B") { // this is a gzip'd file
fseek($zp, -4, SEEK_END);
if(strlen($datum = @fread($zp, 4))==4)
extract(unpack('Vgzfs', $datum));
}
else // not a gzip'd file, revert to regular filesize function
$gzfs = filesize($filename);
fclose($zp);
}
return($gzfs);
}
// delete trailing "(0-9)" string from discogs name fields
function cleanName($s) {
return trim(preg_replace('/\s*\([^)]*\)$/', '', $s));
}
?>