Re: Call for comments: File BibTex

From: Date: Fri, 07 Apr 2006 16:43:46 +0000
Subject: Re: Call for comments: File BibTex
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-42119@lists.php.net to get a copy of this message
Hi Elmar, --- Elmar Pitschke <elmar.pitschke@gmx.de> wrote: > Am Donnerstag, 6. April 2006 22:07 schrieb Arnaud Limbourg: > > Elmar Pitschke wrote: > > > Hello, > > > > > > this is my first proposal to Pear so please be patient if i'm doing some > > > stupid mistakes. I have proposed the outcome of a project i did at my > > > university to work with BibTex data. The class works but i don't know if > > > there is anything more needed for proposal. > > > > > > If you have a minute to spare please take a look at this proposal: > > > > > > http://pear.php.net/pepr/pepr-proposal-show.php?id=386 > > > > > > Thanks for your time > > > Regards > > > Elmar Pitschke > > > > Hi, > > > > It would be great if you could put .phps files online. > > > > Does the class generate the bibtex.tex file as well, it looks like the > > most useful feature to me ? > > > > Arnaud. > > Hi, > thanks for the comment. I put a .phps file online at: > http://www.helftgreg.de/bibtex/BibTex.phps > Also i updated the proposal. Of course there is also a method to export the > data in BibTex Format again it is called "bibTex". The code for the parser is very naive. Seems like you did not test it with a variety of BIBTEX input. For one, you cannot rely on the field data being on just one line. That is an artificial restriction you are putting in your code and does not exist in the original Bibtex spec. Your code fails in many sample files known in the literature. Also, it seems like the code is just the start of a Bibtex parser, because it does not do any validation of the entries being added, or parsed (see example below). It might be nice to have some sort of encapsulation and validation of entries, but this could be a new package (Structure_BibTex perhaps?), so one could do: $art = new Structure_BibTex_Article(); $art->setAuthor(array('Random Nerd', 'Unix Foggie')); ... etc. In any case, take a look at: ftp://sunsite.unc.edu/pub/packages/TeX/biblio/bibtex/distribs/doc/btxdoc.tex (or the similar document in the tetex distribution) http://en.wikipedia.org/wiki/BibTeX http://www-static.cc.gatech.edu/classes/RWL/Projects/citation/Docs/UserManuals/Reference_Pages/bibtex_doc.html http://www.ecst.csuchico.edu/~jacobsd/bib/formats/bibtex.html From the second URL we can take an example that will break your code: [ex.bib] @Book{abramowitz+stegun, author = "Milton Abramowitz and Irene A. Stegun", title = "Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables", publisher = "Dover", year = 1964, address = "New York", edition = "ninth Dover printing, tenth GPO printing", isbn = "0-486-61272-4" } when run with your code: $ex = new File_BibTex(); $ex->loadFile('ex.bib'); $ex->parse(); print_r($ex->data); gives the incorrect: Array ( [0] => Array ( [type] => Book [cite] => abramowitz+stegun [author] => Array ( [0] => Milton Abramowitz [1] => Irene A. Stegun ) [title] => Handbook of Mathematical Functions wit [Formulas, Graphs, and Mathematical Tables", publisher] => Dover [year] => 1964 [address] => New York [edition] => ninth Dover printing, tenth GPO printing [isbn] => 0-486-61272-4 ) ) -- Jesus M. Castagnetto (jcastagnetto@yahoo.com) Web site: http://www.castagnetto.org/ Research: http://metallo.scripps.edu/ PEAR stuff: http://pear.php.net/user/jmcastagnetto __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com

« previous php.pear.dev (#42119) next »