2007-10-11 22:20:42
さて、キーワード検索もしたいので、PubMedでキーワード検索をしてからBibTeX形式で結果を表示するスクリプトを作ってみた。
#! /usr/bin/php
<?php
$base = "http://eutils.ncbi.nlm.nih.gov/entrez/\\
eutils/esearch.fcgi?";
array_shift($argv);
$kwords = implode(" AND ",$argv);
$kwords = urlencode(ereg_replace("_"," ",$kwords));
$url = $base."db=pubmed&term=".$kwords;
$res = file_get_contents($url);
$xml = simplexml_load_string($res);
$pmid_array = $xml->IdList->Id;
$pmids = "";
foreach($pmid_array as $pmid){
$pmids .= $pmid.",";
}
$pmids = ereg_replace(",$","",$pmids);
include("pmf.php");
?>
これをpmsearch.phpというような名前で保存して実行権を付与して保存。一方、昨日作ったスクリプトの$argvのあたりを$pmidsと書き換えてpmf.phpという名前で保存する。使うときには、./pmsearch.php trifluoromethionine 2002[edat]というようにする。スペースはAND検索に変換されるので、スペースとして残したいところはアンダーバーを入れておく。
昨日作ったpmfetch.phpはパスの通ったところにpmfetchという名前で保存しておくと、いつでもどこでもpmfetch 111111とやってBibTeX形式の文献情報が得られる訳だが、たとえば/usr/local/binに保存しようとしてディレクトリを覗いてみたら、そっくりな名前のスクリプトが既にあって、どうやら一年くらい前に一度作って保存していたことをすっかり忘れていたなんてことになると、気分は「こんな便利なもの作ってしまってひょっとして俺って頭いいのかも」という浮かれた状態から、「ただの惚け老人だったんだ」と一気に暗転するから迂闊に喜びすぎない方がいい。幸い、今回のは似たものは見つからなかった。
*昨日掲載したスクリプトは<?php……?>をそのまま書き込んでしまって、見えなくなっていたのを修正しました。