// Copyright: Matthias Steffens and the file's // original author. // // This code is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY. Please see the GNU General Public // License for more details. // // File: ./contrib/endnote/endnote2mysql.php // Author: Richard Karnesky // // Created: 18-Mar-05, 17:10 // Modified: 19-Mar-05, 13:50 // WARNING // This hasn't been tested extensively & can cause weirdness. Give the data // a once over in a spreadsheet to confirm it looks OK before import!!! // This processes the text file produced by using refbase.ens in Endnote: // - Fixes linefeeds, which Endnote can't handle well: // - trims carriage returns // - replaces newlines with '\n' // - trims '' from the start of each citation // - replaces '' with a newline character // - Replaces '' with 'Journal' (a Field Name in Endnote) // - Inserts '\N' between multiple tabs (to explicitly NULL empty fields) // - Replaces '://*\t' with '\N' (bad URLs in Endnote) // TODO: // - Tabs within fields aren't replaced! This can screw things up! // - Allow people to change import & export filenames // - More fields (particularly all dates, first author, number of authors) // - Better parsing of current fields (correct use of 'ed' vs 'eds) // - Automatically import via mysql (intentionally unimplemented for safety) // - Deprecate this whole darn mess by adding native import facilities ;-) $fin = file_get_contents('endnote.txt'); if (!$fin) { echo "Error! Couldn't open endnote.txt."; } else { $fin = str_replace("\r","",$fin); $fin = str_replace("\n","\\n",$fin); $fin = str_replace("","",$fin); $fin = str_replace("\\n","\n",$fin); $fin = str_replace("","Journal",$fin); $fin = preg_replace("/(?<=\t)(?=\t)/","\\N",$fin); $fin = preg_replace("/:\/\/\S*/","\\N",$fin); } do { if (!($fout = fopen('import.txt', "w"))) { $rc = 1; break; } if (!fwrite($fout, $fin)) { $rc = 2; break; } $rc = true; } while (0); if ($fout) { fclose($fout); } ?>