PHP:PEAR

公開:2026.04.18 11:37

PEAR

PEAR と書いて "ペア"(梨) と呼ぶ。 PEAR = PHP Extension and Application Repository
PHPのライブラリやパッケージを管理するシステムのこと。

いまさらながらPEARを使おうと思っていたが、もう昔のものらしい。
今の主流はComposerとのこと。

図書館で「プロになるためのPHPプログラミング入門」という本を借りたが、出版は2012年2月。
HTML_Template_Flexyというのを使っていて(これも現在は非推薦)、そしてこれを使うにはPEARが必要、ということで先に進むためPEARとHTML_Template_Flexyを入れることにした。

こういう技術本はなるべく最新のものを読まないと苦労する。

環境

◆ Windows 11 25H2 (26200.8037) + WSL + Docker
◆ WSL:
PS C:\Users\xxx> wsl --version
WSL バージョン: 2.3.24.0
カーネル バージョン: 5.15.153.1-2
WSLg バージョン: 1.0.65
MSRDC バージョン: 1.2.5620
Direct3D バージョン: 1.611.1-81528511
DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
Windows バージョン: 10.0.26200.8037
◆ Ubuntu:
xxx@xxx:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble

PEAR環境を作る

PHP 学習:文字エンコーディングを意識する

公開:2026.04.17 16:58

PHP:文字エンコーディングを意識する

※ 参考:書籍:プロになるためのPHPプログラミング入門
※ 環境:PHP 8.3

1.4.4 文字エンコーディング関連の設定を行う方法 (p.40)

php.iniの設定

マルチバイトに関する主な設定項目
◆ mbstring.language
これは mb_send_mail() と mbstring.detect_order に影響します。

◆ mbstring.internal_encoding
この INI エントリの使用は非推奨です。代わりにグローバルな internal_encoding を使用してください。
一部のエンコーディングは内部エンコーディングとして機能しません。(例: SJIS、BIG5、ISO-2022-*)
空の場合は、default_charset、internal_encoding、または iconv.internal_encoding が使用されます。
優先順位は、default_charset < internal_encoding < iconv.internal_encoding です。

◆ internal_encoding
PHPの内部文字エンコーディングは空に設定されています。
空の場合、default_charsetが使用されます。

◆ default_charset
PHPのデフォルトの文字セットはUTF-8に設定されています。

PHPプログラムの保存形式

PHPプログラムのファイル(*.php)はUTF-8形式(BOM無し)で保存する。

入力データチェック

ユーザーが送信するデータがUTF-8であるかプログラムでチェックする。
mb_check_encoding関数 を使用。

文字列処理

マルチバイト文字列を処理する際はマルチバイト文字列関数(mb_xxx関数)を使用する。

HTTPレスポンスヘッダ

HTTPレスポンスヘッダに文字エンコーディングを指定する。

php.ini

◆ default_mimetype
PHPの組み込みのデフォルトメディアタイプはtext/htmlに設定されています。

◆ default_charset

PHPプログラム

header関数を使用する。
header('context-type: text/html; charset=UTF-8');

htmlspecialchars関数

PHPプログラムからWebブラウザへデータを出力する際に使用するhtmlspecialchars関数は第3引数に文字エンコーディングを指定する。



PHP 学習

Fess:クローラー設定の細分化とラベル設定

公開:2026.04.17 15:58

Fess:クローラー設定の細分化とラベル設定

Fessのクローラー設定を行う際、インデックス対象のルートフォルダを登録するより、サブフォルダ別にクローラー登録した方が良い気がする。
これはクロールに相当時間がかかるため、例えばフォルダを年別(2024年、2025年、2026年)のサブフォルダに分けておけば2024年、2025年フォルダは頻繁にクロールする必要はないわけで負荷が少なくなる。

また、ラベルを付けておくと、検索結果をラベル名で絞り込めるので便利。

ラベルの設定

ラベルは設定画面の [クローラー] - [ラベル] にて設定する。
新規設定画面より、
・名前 - 画面に表示する名前
・値 - 内部の値、英数字で指定
・クロール対象とするパス - 正規表現でパスを指定

過去記事:Fess:WSL+Ubuntu+Docker環境でのインデックス作成 では、Windows上の"d:\documents"フォルダを/var/fes/documents にマップした。
このフォルダ配下のサブフォルダ名でラベルを付ける場合で、"D\documents\2025\*.*" のフォルダに対してのラベルの場合は以下のパスを指定

file:/var/fess/documents/2025/.*

のように指定すれば 2025フォルダ配下の全ファイルに指定したラベルが付く。

ラベルを設定したら設定画面の [システム] - [スケジューラー] より "Label Updater" を実行する。


Fess

その他の記事