php INI設定ファイルの解析と実装_PHPチュートリアル
それで、この記事を読んで、別の dba 関数が使用できることを知りました。 さて、dba 関数のインストールを詳しく調べたところ、inifile のサポートは PHP5 でのみ実装されていることがわかりました。対応する DBA 関連情報については、http://www.php.net/manual/en/dba.installation.php を参照してください。詳細については、http://www.php.net を参照してください。 /manual/en/book.dba.php
OK、原文は http://www.cardii.net/php-spl-parse-ini-file/ からです。
SPLのさまざまなタイプのインターフェースとイテレータを紹介しました。今日、PHP のソース コード ディレクトリを参照しているときに、INI ファイルを解析するサンプルを見つけたので、サンプルをコンパイルして共有しました。
PHP アプリケーションでは、特にモールや CMS などの製品には設定ファイルが不可欠です。もちろん、顧客ごとに 1 つのセットを開発する必要はありません。さまざまな構成ファイルの。私はかつて、構成ファイルの作成に適した 4 つの主要なカテゴリがあると述べました。それは、PHP 配列 (ほとんどの他の構成メソッドは最終的に PHP 配列に解析されます)、XML、YAML、および INI です。今日は INI ファイルについてのみ説明します。 ZendFramework はこの構成を使用します。
DbaReader クラスを見てみましょう。ファイル名は DbaReader.php です:
class DbaReaderimplements Iterator
{
protected $db = NULL;
private $key = false;
private $ val = false;
/**
* $handler を使用してデータベース $file を読み取り専用モードで開きます。
*
* @param file 開くデータベース ファイル。
* @param handler データベースアクセスに使用するハンドラー。
*/
function __construct($file, $handler) {
if (!$this->db = dba_open($file, 'r', $handler)) {
新しい例外をスロー('ファイルを開けませんでした ' . $file);
}
}
/**
* データベースを閉じます。
*/
function __destruct() {
dba_close($this->db );
}
/**
* 最初の要素に巻き戻します。
*/
関数 rewind() {
$this->key = dba_firstkey($this->db);
$this->fetch_data();
/**
* 次の要素に移動します。
*
* @return void
*/
function next() {
$this->key = dba_nextkey($this->db)
}
/* *
* $key が有効な場合、現在のデータを取得します
* /
プライベート関数 fetch_data() {
if ($this->key !== false) {
$this->val = dba_fetch($this->key, $this-> db);
}
}
/**
* @return 現在のデータ。
*/
function current() {
return $this->val;
/**
* @return さらに要素が使用可能かどうか。
*/
function valid() {
if ($this ->db && $this->key !== false) {
return true;
} else {
return false
}
}
/**
* @return 現在のキー。
*/
関数key() {
return $this->key;
}
}
?>
DbaReader は Iterator インターフェイスを使用し、もちろん内部に 5 つの反復メソッドを実装する必要があります。反復方法では、dba 拡張機能を使用して handlerhandlerINI ファイルを解析します。
少し話がそれましたが、Dba とは何ですか?なぜ DBA を使用するのですか?
ファイルはデータの保存に使用されるのに、なぜ依然として DBA を使用するのでしょうか?理由は 2 つあります。
1 データ レコードの保存長が固定されていない可能性があります。
2 データの保存と取得にインデックスを使用します。
DbaReader は、INI ファイル データにアクセスするための反復的な方法を提供します。削除されたデータを保存する必要がある場合はどうすればよいですか?したがって、DbaArray は DbaReader を継承してこの関数を実装します。
コードをコピーします
class DbaArray extends DbaReaderimplements ArrayAccess
{
/**
* $handler を使用してデータベース $file を読み取り専用モードで開きます。
*
* @param file 開くデータベース ファイル。
* @param handler データベースアクセスに使用するハンドラー。取值http://www.php.net/manual/en/dba.requirements.php
*/
function __construct($file, $handler)
{
$this->db = dba_popen($file, "c", $handler);
if (!$this->db) {
新しい例外をスロー("データベースを開けませんでした");
}
}
/**
* データベースを閉じます。
*/
function __destruct()
{
parent::__destruct();
}
/**
* エントリーを読んでください。
*
* @param $name から読み取るキー
* $name に関連付けられた @戻り値
*/
function offsetGet($name)
{
$data = dba_fetch($name, $this->db);
if($data) {
if (ini_get('magic_quotes_runtime')) {
$data = ストリップスラッシュ($data);
}
//return unserialize($data);
$data を返す;
}
else
{
NULL を返す;
}
}
/**
* エントリを設定します。
*
* @param $name 書き込むキー
* @param $value 書き込む値
*/
function offsetSet($name, $value)
{
//dba_replace($name, Serialize($value), $this->db);
dba_replace($name, $value, $this->db);
$value を返します;
}
/**
* @return キー $name が存在するかどうか。
*/
function offsetExists($name)
{
return dba_exists($name, $this->db);
}
/**
* キーと値のペアを削除します。
*
* 削除する @param $name キー。
*/
function offsetUnset($name)
{
return dba_delete($name, $this->db);
}
}
?>
使用例
构建文件text.ini、内容如下:
host = localhost
password = パスワード
database = data
文件index.php.代码如下:
function loadClass($class)
{
require_once __DIR__.DIRECTORY_SEPARATOR.$class.'.php';
}
spl_autoload_register('loadClass',false);
$iniFile = __DIR__.DIRECTORY_SEPARATOR.'test.ini';
$ini = 新しい DbaArray($iniFile,'iniFile');
echo $ini['データベース'];
var_dump($ini);
?>
--EOF--
この段は完了しました、これは何か特別な方法ではありませんか?突然忘れていましたが、ansi/utf-8 がコード化されている場合、これは永続的な痛みです。)

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
