function find_reference($journal, $volume, $page, $year = '') { global $db; $references = array(); $hits = array(); if ($journal == '' || $volume == '' || $page == '') { //echo "journal=$journal\n"; return $hits; } $series = ''; $issn = ''; $oclc = 0; if (preg_match('/^(?<journal>.*),\\s+ser\\.\\s+(?<series>.*)$/', $journal, $m)) { $journal = $m['journal']; $series = $m['series']; } if (preg_match('/^(?<journal>.*),\\s+(ns|n.s.)$/', $journal, $m)) { $journal = $m['journal']; //$series = $m['series']; } if (preg_match('/^(?<page>\\d+),(.*)$/', $page, $m)) { $page = $m['page']; } $issn = issn_from_title($journal); if ($issn == '') { $oclc = oclc_for_title($journal); } //echo $issn; //echo $oclc; $sql = ''; if ($issn != '') { $sql = 'SELECT * FROM rdmp_reference WHERE issn=' . $db->qstr($issn) . ' AND volume=' . $db->qstr($volume) . ' AND ' . $page . ' BETWEEN spage AND epage'; } if ($oclc != '') { $sql = 'SELECT * FROM rdmp_reference WHERE oclc=' . $db->qstr($oclc) . ' AND volume=' . $db->qstr($volume) . ' AND ' . $page . ' BETWEEN spage AND epage'; } if ($sql != '') { if ($series != '') { $sql .= ' AND series=' . $db->qstr($series); } if ($year != '') { $sql .= ' AND year=' . $db->qstr($year); } $result = $db->Execute($sql); if ($result == false) { die("failed [" . __FILE__ . ":" . __LINE__ . "]: " . $sql); } while (!$result->EOF) { $references[] = $result->fields['reference_id']; $result->MoveNext(); } } foreach ($references as $reference_id) { $hits[] = reference_to_bibjson(db_retrieve_reference($reference_id)); } return $hits; }
/* echo '<pre>'; print_r($page2biostor); echo '</pre>'; */ $count = 0; foreach ($r as $row) { if (is_array($row)) { if (isset($row['Url'])) { $PageID = str_replace('http://www.biodiversitylibrary.org/page/', '', $row['Url']); //echo $PageID . '<br/>'; if (isset($page2biostor[$PageID])) { if (!isset($hits[$page2biostor[$PageID]])) { $reference = db_retrieve_reference($page2biostor[$PageID]); $hit = reference_to_bibjson($reference); $hit->PageID = $reference->PageID; $hit->biostor = $page2biostor[$PageID]; $hits[$page2biostor[$PageID]] = $hit; } } else { /* $ItemID = bhl_retrieve_ItemID_from_PageID($PageID); if ($ItemID == 0) { $id = $count; $count++; } else { $id = $ItemID;
function DisplayBibJson() { $j = reference_to_bibjson($this->object); header("Content-type: text/plain; charset=utf-8\n\n"); if ($this->callback != '') { echo $this->callback . '('; } echo json_format(json_encode($j)); if ($this->callback != '') { echo ')'; } }