prg.nemne.info

book-search

蔵書登録と「この本持ってたっけ…?」となったときに検索ができるPHP製のスクリプトです。
PHP 8.2.26で動作検証しています。

利用方法

設置方法

/srcをリネームするなどしてフォルダごとサーバーにアップロードしてください。
検索避けのmetaタグは入れていますが、設置の際はディレクトリにBasic認証やIPアドレス制限をかけることをおすすめします。

/_modules/fnc_inc/config.phpは設定ファイルです。ファイル名と検索結果1ページの表示件数を変更できます。
蔵書はJSON形式で保存されます。ログ保存ファイル(初期値はbooks.json)の拡張子は.jsonにしてください。

ホーム登録 / faviconについて

サイトをホームに追加することで、次回以降ホーム画面から起動時はアプリのように単体で起動することが可能です。
Basic認証を設定している場合は、サーバーに設置後/faviconフォルダ内のhtaccess.txt.htaccessにリネームしてください。ホーム画面追加時の名称は、manifest.webmanifestの以下book searchの部分を変更してください。

{
"name": "book search",
}

faviconの画像は適宜差し替えてください。

蔵書検索について

「タイトル」「著者名」「出版社」が検索対象です。入力フィールドに何も入れず検索した場合は、全蔵書一覧が表示されます。
大文字、小文字の区別はしません。また、AND,OR検索には対応していません。

蔵書登録について

蔵書登録はCSV形式で一括登録、または手入力で1件ずつ登録できます。入力項目は下記です。

  • ISBNコード:数字13桁
  • タイトル:255文字以内(以降切り捨て)
  • 著者名:255文字以内(同)
  • 出版社:255文字以内(同)
  • 電子書籍かどうか:電子書籍の場合は1、そうでない場合は0

CSV登録の場合

  • 一度にアップロードできるCSVのファイルサイズは1MBまで
  • 項目の順番は左から「ISBNコード」「タイトル」「著者名」「出版社」「電子書籍」
  • ISBNコードが未入力の場合、0が13こ代入される
  • タイトル・著者名・出版社名はそれぞれ255文字まで登録される(256文字以上は切り捨て)
  • 電子書籍の場合は1、電子書籍でない場合は0を指定する

CSVデータの入力書式は以下をご参考ください。いずれの行も登録可能な表記です。

  • 入力項目に,(カンマ)が存在する場合は、項目そのものを"(ダブルクオーテーション)で囲う
  • 入力項目に"が存在する場合で項目そのものを"で囲っている場合は、さらに"で囲う
CSVファイルの書式サンプル
9784003101117,こころ,夏目漱石 著,岩波書店,0
"9784003101117","こころ","夏目漱石 著","岩波書店","0"
0000000000000,あ"いうえ"お,かきくけこ 著,,1
"","あ""いうえ""お","かきくけこ 著","","1"
"0000000000000","あ,い,う,え,お","かきくけこ, さしすせそ 著","","1"

手入力の場合

  • タイトルは入力必須
  • 電子書籍にチェックが入っていない場合、ISBNコードの入力も必須
  • 電子書籍にチェックが入っているかつISBNコードが未入力の場合、0が13こ代入される
  • タイトル・著者名・出版社名はそれぞれ255文字までが登録される(256文字以上は切り捨て)

蔵書削除について

検索結果画面の各蔵書リストに「削除」という項目があるので、クリックすると確認ダイアログが表示され、登録内容が削除されます。

スクリーンショット

トップページ

トップページ

検索結果画面

検索結果画面

登録画面

登録画面

ライセンスについて

蔵書登録・検索スクリプトはMITライセンスのもとで開発しています。詳細は同封のLICENSEをご覧ください。

なお、本スクリプトではテンプレートエンジンにTwigを利用しています。Twigのライセンスは3条項 BSDライセンス(BSD-3-Clause License)のもとで開発されています。詳細は同封のLICENSE_TWIGをご覧ください。

変更履歴

  • 25/12/7 頒布開始(v1.00)