Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save black23/a5d0a1db9ed62e5575908921cd5382b2 to your computer and use it in GitHub Desktop.
Save black23/a5d0a1db9ed62e5575908921cd5382b2 to your computer and use it in GitHub Desktop.
<?php
// skript který nahradí id_uzivatele carovym kodem uzivatele
$start = microtime(true);
$csv_id = array_map('str_getcsv', file('uid_userPassword_barcode.csv'));
$csv_borrowers = array_map('str_getcsv', file('borrowers.csv'));
$handle_OUT = fopen('./export.aktivni_vypujcky_krok_2.csv', "w+");
$pole_uzivatelu = @naplnit_pole_uzivatelu($csv_id, $csv_borrowers);
if (($handle = fopen('export.aktivnich_vypujcek.csv', 'r')) !== false) {
// get the first row, which contains the column-titles (if necessary)
// loop through the file line-by-line
while (($data = fgetcsv($handle)) !== false) {
// resort/rewrite data and insert into DB here
// try to use conditions sparingly here, as those will cause slow-performance
//$radek = str_getcsv($data[1], ",");
//var_dump($data);
@konvertuj_data($data, $handle_OUT, $pole_uzivatelu);
//exit (0);
//
// I don't know if this is really necessary, but it couldn't harm;
// see also: http://php.net/manual/en/features.gc.php
unset($data);
}
fclose($handle);
}
$time_elapsed_secs = microtime(true) - $start;
print_r("CAS konverze dat:" . round($time_elapsed_secs, 2));
print_r(" sekund");
exit(0);
/* * ********* KONEC bloku - níže jsou funkce **************** */
function konvertuj_data(array $radek, $handle, $pole_uzivatelu) {
$ISSUE_ID = $radek[0];
$BORROWERNUMBER = $radek[1];
$ITEMNUMBER = $radek[2];
$DATE_DUE = $radek[3];
$BRANCHCODE = $radek[4];
$RETURNDATE = $radek[5];
$LASTRENEWDATE = $radek[6];
$RENEWALS = $radek[7];
$AUTO_RENEW = $radek[8];
$AUTO_RENEW_ERROR = $radek[9];
$TIMESTAMP = $radek[10];
$ISSUEDATE = $radek[11];
$ONSITE_CHECKOUT = $radek[12];
$NOTE = $radek[13];
$NOTEDATE = $radek[14];
if (trim($pole_uzivatelu[$BORROWERNUMBER]) != null) {
$BORROWERNUMBER = $pole_uzivatelu[$BORROWERNUMBER];
} else {
$BORROWERNUMBER = 1;
}
$final_row = "";
$final_row .= "\"" . $ISSUE_ID . "\"";
$final_row .= ",";
$final_row .= "\"" . $BORROWERNUMBER . "\"";
$final_row .= ",";
$final_row .= "\"" . $ITEMNUMBER . "\"";
$final_row .= ",";
$final_row .= "\"" . $DATE_DUE . "\"";
$final_row .= ",";
$final_row .= "\"" . $BRANCHCODE . "\"";
$final_row .= ",";
if (strlen(trim($RETURNDATE)) == 0 || $RETURNDATE == "NULL") {
$final_row .= "NULL";
} else {
$final_row .= "\"" . $RETURNDATE . "\"";
}
$final_row .= ",";
if (strlen(trim($LASTRENEWDATE)) == 0 || $LASTRENEWDATE == "NULL") {
$final_row .= "NULL";
} else {
$final_row .= "\"" . $LASTRENEWDATE . "\"";
}
$final_row .= ",";
$final_row .= "\"" . $RENEWALS . "\"";
$final_row .= ",";
$final_row .= "\"" . $AUTO_RENEW . "\"";
$final_row .= ",";
$final_row .= "\"" . $AUTO_RENEW_ERROR . "\"";
$final_row .= ",";
$final_row .= "\"" . $TIMESTAMP . "\"";
$final_row .= ",";
if (strlen(trim($ISSUEDATE)) == 0 || $ISSUEDATE == "0" || $ISSUEDATE == null ) {
$final_row .= "NULL";
} else {
print_r($ISSUEDATE . "\n");
$final_row .= "\"" . $ISSUEDATE . "\"";
}
$final_row .= ",";
$final_row .= "\"" . $ONSITE_CHECKOUT . "\"";
$final_row .= ",";
$final_row .= "\"" . $NOTE . "\"";
$final_row .= ",";
if (strlen(trim($NOTEDATE)) == 0 || $NOTEDATE == "NULL") {
$final_row .= "NULL";
} else {
$final_row .= "\"" . $NOTEDATE . "\"";
}
//když je vypisování zapnuto, script se nepatrně zpomalí. cca 60 sekund na 3,5M záznamů.
//print_r($ISSUE_ID . "\n");
fwrite($handle, $final_row . "\r\n");
}
function naplnit_pole_uzivatelu($csv_id, $csv_borrowers) {
$pole_uzivatelu = array();
$pole_borrowers = array();
$start = microtime(true);
foreach ($csv_id as $i => $value) {
$radek = str_getcsv($value[0], ";");
$pole_uzivatelu[$radek[2]] = $radek[0];
}
foreach ($csv_borrowers as $i => $value) {
$radek = str_getcsv($value[0], ";");
$pole_borrowers[$radek[1]] = $radek[0];
}
$whatYouNeed = array();
foreach ($pole_uzivatelu as $key => $column) {
$whatYouNeed[$column] = $pole_borrowers[$key];
}
print_r($csv_borrowers[3222010010128]);
print_r("array id: \n");
print_r($csv_borrowers['ID24946']);
//var_dump($pole_uzivatelu);
//var_dump($pole_borrowers);
//var_dump($array_inter);
//var_dump($array_final);
//var_dump($array_combine);
// var_dump($whatYouNeed);
print_r("Velikost pole uzivatelu:");
print_r(sizeof($pole_uzivatelu) . "\n");
print_r("\n");
print_r("Velikost pole borrowers:");
print_r(sizeof($pole_borrowers) . "\n");
print_r("\n");
print_r("Velikost pole whatYouNeed:");
print_r(sizeof($whatYouNeed) . "\n");
print_r("\n");
$time_elapsed_secs = microtime(true) - $start;
print_r("\n");
print_r("\n");
print_r("Velikost pole uzivatelu:");
print_r(sizeof($pole_uzivatelu) . "\n");
print_r("\n");
print_r("\n");
print_r("\n");
print_r("\n");
print_r("CAS naplneni pole uzivatelu:" . round($time_elapsed_secs, 2));
print_r(" sekund" . "\n");
return $whatYouNeed;
//return $pole_uzivatelu;
/**
$pole_uzivatelu = array();
$pole_borrowers = array();
$start = microtime(true);
foreach ($csv_id as $i => $value) {
$radek = str_getcsv($value[0], ";");
$pole_uzivatelu[$radek[0]] = $radek[2];
}
foreach ($csv_borrowers as $i => $value) {
$radek = str_getcsv($value[0], ";");
$pole_borrowers[$radek[1]] = $radek[0];
}
$time_elapsed_secs = microtime(true) - $start;
print_r("\n");
print_r("\n");
print_r("Velikost pole uzivatelu:");
print_r(sizeof($pole_uzivatelu) . "\n");
print_r("\n");
print_r("\n");
print_r("CAS naplneni pole uzivatelu:" . round($time_elapsed_secs, 2));
print_r(" sekund" . "\n");
return $pole_uzivatelu;
* /
*/
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment