コード例 #1
0
ファイル: micro.php プロジェクト: rdmpage/bioguid
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;
}
コード例 #2
0
ファイル: bhlapi_names.php プロジェクト: rdmpage/bioguid
 /*
 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;
コード例 #3
0
ファイル: display_reference.php プロジェクト: rdmpage/bioguid
 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 ')';
     }
 }