|
<?php
|
|
// Project: Web Reference Database (refbase) <http://www.refbase.net>
|
|
// Copyright: Matthias Steffens <mailto:refbase@extracts.de> 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 <mailto:karnesky@northwestern.edu>
|
|
//
|
|
// 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 '<REFBASE>' from the start of each citation
|
|
// - replaces '</REFBASE>' with a newline character
|
|
// - Replaces '<REFBASE J/>' with 'Journal' (a Field Name in Endnote)
|
|
// - Inserts '\N' between multiple tabs (to explicitly NULL empty fields)
|
|
// - Replaces '<Go to ISI>://*\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("<REFBASE>","",$fin);
|
|
$fin = str_replace("</REFBASE>\\n","\n",$fin);
|
|
$fin = str_replace("<REFBASE J/>","Journal",$fin);
|
|
$fin = preg_replace("/(?<=\t)(?=\t)/","\\N",$fin);
|
|
$fin = preg_replace("/<Go to ISI>:\/\/\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);
|
|
}
|
|
?>
|