導入: 導入 - PHPプロ!マニュアル
- 導入
導入
概要
このパッケージは、BibTex ファイルに保存された情報にアクセスするための メソッドを提供します。パース時に、データの検証を行うこともできます。 さらに、BibTex 文字列を作成したり RTF 文字列を作成したりすることもサポートしています。
例
BibTex ファイルを読み込み、パース結果を配列で表示する
<?php
require_once 'Structures/BibTex.php';
$bibtex = new Structures_BibTex();
$ret = $bibtex->loadFile('foo.bib');
if (PEAR::isError($ret)) {
die($ret->getMessage());
}
$bibtex->parse();
echo '<pre>';
print_r($bibtex->data);
echo '</pre>';
?>オプション
オプションは、コンストラクタで設定するか、あるいは setOption() メソッドで設定します。 コンストラクタで設定する場合は、連想配列形式で指定します。 以下のようなオプションがあります。
-
stripDelimiter (デフォルト: true) エントリの前後の区切り文字を取り除きます。
-
validate (デフォルト: true) パース時に内容を検証します。
-
unwrap (デフォルト: false) パース時に、ワードラップを解除します。
-
wordWrapWidth (デフォルト: false) 1 より大きい数値を指定すると、その文字数でエントリをワードラップします。
-
wordWrapBreak (デフォルト: n) 改行に使用する (行に追加される) 文字。
-
wordWrapCut (デフォルト: 0) 0 を指定すると、条件を満たすように空白の位置で改行されます。 1 を指定すると、指定した文字数ちょうどの位置で改行されます。
-
removeCurlyBraces (デフォルト: false) true を指定すると、波括弧が削除されます。
コンストラクタでのオプションの設定
<?php
$bibtex = new Structures_BibTex(array('validate'=>false, 'unwrap'=>true));
?>setOption() メソッドでオプションを設定する例です。
setOption を使用したオプションの設定
<?php
$bibtex = new Structures_BibTex();
$bibtex->setOption('validate', false);
$bibtex->setOption('unwrap', true);
?>保存されたデータ
データは、クラス変数 data に保存されます。 この変数はリストになっており、各エントリが、ひとつの bibtex エントリを表すハッシュテーブルとなっています。 ハッシュテーブルのキーが bibtex のキーを表し、 それに対応する値がハッシュテーブルの値となります。 次のようなキーがあります。
-
cite - LaTeX のソースで引用する際に使用されるキー。
-
entryType - エントリの種類。例えば techreport、book など。
-
author - 著者。 このエントリの値自体がハッシュテーブルのリストとなり、 各ハッシュテーブルが著者を表します。ハッシュテーブルの内容については後で説明します。
-
title - エントリのタイトル。
著者
先ほど説明したように、著者の情報はリストに保存されます。 各エントリがそれぞれひとりの著者を表し、それぞれがハッシュテーブルを持っています。 ハッシュテーブルは first、von、last そして jr の 4 つのキーで構成されます。 それぞれのキーについて説明します。
-
first - 著者のファーストネーム。
-
von - 中には、名前に 'von' のような部分が含まれる人もいます。これは、通常は貴族の印です。
-
last - 著者の姓。
-
jr - 中には、父と同じ名前の著者もいます。 その場合、この値が jr となります。逆に、 息子と同じ名前の著者の場合は、この値が sen となります。
エントリの追加
エントリを追加するには、必要なキーおよび値を指定したハッシュテーブルを作成して addEntry() メソッドをコールします。
エントリの追加
<?php
$bibtex = new Structures_BibTex();
$addarray = array();
$addarray['entryType'] = 'Article';
$addarray['cite'] = 'art2';
$addarray['title'] = 'Titel of the Article';
$addarray['author'][0]['first'] = 'John';
$addarray['author'][0]['last'] = 'Doe';
$addarray['author'][1]['first'] = 'Jane';
$addarray['author'][1]['last'] = 'Doe';
$bibtex->addEntry($addarray);
?>


ページのトップへ


一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。