You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
2.4 KiB

<?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);
}
?>