ホームページ バックエンド開発 PHPチュートリアル php INI設定ファイルの解析と実装_PHPチュートリアル

php INI設定ファイルの解析と実装_PHPチュートリアル

Jul 21, 2016 pm 03:32 PM
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 はデータベースであり、正確には、インデックス付きファイル ストレージ システムです。比較的静的なインデックス付きデータ ストレージに適しています。 Linux のすべてのバージョンには、このデータベースが付属しています。
ファイルはデータの保存に使用されるのに、なぜ依然として 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 がコード化されている場合、これは永続的な痛みです。)

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/322682.html技術記事この篇の文章を見たとき、私もまた知っています、原来、また dba の関数が使用可能です、嗯、仔细は下にある dba この関数のインストールを確認しました、inifile をサポートしています...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

See all articles