# roster-selector generates an event roster javascript data model //set_error_handler("myErrorHandler"); //if (!file_exists("team-rosters.js")) { $db = fopen("teams-riders.txt", "r"); // print_r($db); $js_out = fopen("team-rosters.js", "w"); fwrite($js_out, "var teams = ["); //$line = fgets($db, 1000); //echo $line; $team = tokens($db, ','); //debug_exit($team); $separator = ''; do { fwrite ($js_out, $separator); fwrite ($js_out, "{\"name\": \"".htmlentities($team[1], ENT_QUOTES, "ISO-8859-15")."\", \"code\": \"{$team[0]}\", \"country\": \"{$team[2]}\", \"url\": \"{$team[3]}\", \"riders\": ["); //fwrite ($js_out, "{\"name\": \"{$team[1]}\", \"code\": \"{$team[0]}\", \"country\": \"{$team[2]}\", \"url\": \"{$team[3]}\", \"jersey\": \"{$team[4]}\", \"riders\": ["); $rider_row = tokens($db, ' '); //debug_exit($rider_row); $separator = ''; do { fwrite($js_out, $separator); $rider = parse_rider_row($rider_row); fwrite($js_out, "[\"{$rider[0]}\", \"".htmlentities($rider[1], ENT_QUOTES, "ISO-8859-15")."\", \"".htmlentities($rider[2], ENT_QUOTES, "ISO-8859-15")."\", null, null]"); //fwrite($js_out, "[\"{$rider[0]}\", \"{$rider[1]}\", \"{$rider[2]}\", null, null]"); $rider_row = tokens($db, ' '); $separator = ', '; } while (sizeof($rider_row) >= 3); fwrite($js_out, ']}'); $team = tokens($db, ','); } while ($team); fwrite($js_out, "];"); //} // (!file_exists("team-rosters.js")) fclose($db); fclose($js_out); function debug_exit($v) { echo "
"; print_r($v); echo ""; global $db; global $js_out; fclose($db); fclose($js_out); exit(1); } function parse_rider_row($rider_row) { if (sizeof($rider_row) == 3) { return $rider_row; } // ESP19710615 ARRIETA LUJAMBIO José Luis $lastname = $rider_row[1]; for ($i = 2; $i < sizeof($rider_row); $i++) { $word = str_split4($rider_row[$i]); //debug_exit($lastname); for ($j = sizeof($word)-1; $j > -1; $j--) { //echo "{$j} "; $ascii = ord($word[$j]); if (($ascii > 96 && $ascii < 123) || ($ascii > 129 && $ascii < 142) || ($ascii > 159 && $ascii < 165)) { // found lowercase letter that implies first name $firstname = $rider_row[$i]; while (++$i != sizeof($rider_row)) { $firstname = $firstname . ' ' . $rider_row[$i]; } //debug_exit(array($rider_row[0], $lastname, $firstname)); return array($rider_row[0], $lastname, $firstname); } // if (($ascii > 96 && $ascii < 123) ... } // for ($j = sizeof($word)-1; $i > -1; $i--) $lastname = $lastname . ' ' . $rider_row[$i]; } // for ($i = 2; $i < sizeof($rider_row); $i++) } //if (!function_exists('str_split')) { function str_split4($string, $split_length = 1) { $array = explode("\r\n", chunk_split($string, $split_length)); array_pop($array); return $array; } //} function tokens($fp, $delimiter) { $line = utf8_decode(fgets($fp, 1000)); if (strlen($line) < 5) return false; $line = substr ($line, 0, -1); // remove the carriage return return explode($delimiter, $line); } function myErrorHandler($errno, $errstr, $errfile, $errline) { global $db; fclose($db); global $js_out; fclose($js_out); switch ($errno) { case E_USER_ERROR: echo "My ERROR [$errno] $errstr