>> Just looking for a pointer or functions I can use to do this... >> >> I have a spreadsheet with a couple thousand entries that I'll be using for >> populating a MySQL database. The spreadsheet has names listed in "last, >> first" - the database I'll be populating has separate fields for first and >> last names. >> >> I exported the names column from the spreadsheet in tab-delimited format >and >> I figured I could come up with a quick PHP script that would open the text >> file, find each instance of ", ", take all that's before that delimiter >and >> move it after all that's after that delimiter, inserting a tab in between. >> So "last, first" would become "first[tab]last". >> >> So far, I've gotten: >> <?php >> $filename = "NAMES.txt"; //name the file... >> $fp = fopen($filename,"r+"); //open it... >> echo "Reading $filename..."; >> >> $contents = fread($filename, filesize($filename)); //read it... >> >> $names = explode("\n", $contents); >> >> foreach($names as $name); >> echo "$name<br>"; >> >> fclose($filename); >> ?>
$file = file("NAMES.txt") or die("Could not open file"); $output = fopen("NAMES.out") or die("Could not open NAMES.out -- Do 'touch NAMES.out; chmod 666 NAMES.out' REMOVE NAMES.out when DONE!!!"); while(list(,$line) = each($file)){ $fields = explode("\t", $fields); $name = $fields[3]; # 3 is probably wrong... Which field is last, first? $parts = explode(',', $name); $last = trim($parts[0]); $first = trim($parts[1]); $fields[3] = $last; # Again, 3 is the old name field. $fields[] = $first; # Take first name on to the end. $newline = implode("\t", $fields); $wrote = fputs($output, $newline); if ($wrote != strlen($newline)){ echo "Only wrote $wrote of ", strlen($newline), " characters!<BR>\n"; } -- Like Music? http://l-i-e.com/artists.htm -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php