> 백엔드 개발 > PHP 튜토리얼 > 컴퓨터 구성 소프트웨어 PHP INI 구성 파일의 분석 및 구현 보기

컴퓨터 구성 소프트웨어 PHP INI 구성 파일의 분석 및 구현 보기

WBOY
풀어 주다: 2016-07-29 08:44:10
원래의
1179명이 탐색했습니다.

그래서 이 글을 읽으면서 또 다른 dba 함수를 사용할 수 있다는 걸 알게 됐어요. 그런데 dba 함수의 설치를 자세히 살펴보니 inifile에 대한 지원이 PHP5에서만 구현되어 있다는 걸 알게 됐어요. 해당 DBA 관련 정보는 여기(http://www.php.net/manual/en/dba.installation.php)에서 찾아보실 수 있습니다. 자세한 내용은 여기(http://www.php.net)를 참조하세요. / manual/en/book.dba.php
좋아, 원본 텍스트는 http://www.cardii.net/php-spl-parse-ini-file/에서 가져왔습니다.
SPL의 다양한 인터페이스와 반복자를 소개했습니다. 오늘은 PHP 소스코드 디렉토리를 검색하다가 INI 파일을 파싱하는 예제를 발견해서 좋다고 생각해서 예제를 컴파일해서 공유해봤습니다.
PHP 애플리케이션에서는 특히 쇼핑몰이나 CMS와 같은 제품의 경우 구성 파일이 필수적입니다. 물론 각 고객이 일련의 프로그램을 개발하는 것은 아닙니다. 각 고객마다 다른 구성 파일 세트가 있습니다. 나는 구성 파일을 만드는 데 적합한 네 가지 주요 범주가 있다고 말한 적이 있습니다. 즉, PHP 배열(거의 다른 구성 방법은 궁극적으로 PHP 배열로 구문 분석됩니다), XML, YAML 및 INI입니다. 오늘은 INI 파일에 대해서만 이야기하겠습니다. ZendFramework는 이 구성을 사용합니다.
DbaReader 클래스를 살펴보겠습니다. 파일 이름은 DbaReader.php입니다.

코드를 복사하세요 코드는 다음과 같습니다.


class DbaReader는 Iterator를 구현합니다
{
protected $db = NULL;
private $key = false
private $val = false; function __construct($file , $handler) {
if (!$this->db = dba_open($file, 'r', $handler)) {
새 예외 발생('파일을 열 수 없습니다. ' .$file);
}
}
/**
* 읽기 전용 모드에서 $handler를 사용하여 데이터베이스 $file을 엽니다.
*
* @param file 열려는 데이터베이스 파일입니다.
* @param handler 데이터베이스 액세스에 사용할 핸들러입니다.
*/
function __destruct() {
dba_close($this->db)
} 🎜>/**
* 데이터베이스를 닫습니다.
*/
function rewind() {
$this->key = dba_firstkey($this->db)
$this->fetch_data();
}
/**
* 첫 번째 요소로 되감기.
*/
function next() {
$this->key = dba_nextkey($this->db)
$this-> ;fetch_data();
}
/**
* 다음 요소로 이동합니다.
*
* @return 무효
*/
비공개 함수 fetch_data() {
if ($this->key !== false) {
$ this->val = dba_fetch($this->key, $this->db)
}
}
/**
* $key가 유효한 경우 현재 데이터를 가져옵니다.
*/
function current() {
return $ this->val;
}
/**
* @return 현재 데이터.
*/
function valid() {
if ($this->db && $this-> ;key !== false) {
true 반환
} else {
false 반환
}
}
/**
* @return 더 많은 요소를 사용할 수 있는지 여부.
*/
기능 키 () {
return $this->key;
}
?>


DbaReader는 Iterator 인터페이스를 사용하며, 물론 다음을 구현해야 합니다. 내부에는 5가지 반복 방법이 있습니다. 반복적 방법은 dba 확장을 사용하여 handlerhandlerINI 파일을 구문 분석합니다.
여담으로 말하자면, DBA란 무엇인가요? 왜 DBA를 사용하나요?
Dba는 데이터베이스, 정확히 말하면 인덱스 파일 저장 시스템입니다. 상대적으로 정적인 인덱스 데이터 저장에 적합합니다. 모든 Linux 버전에는 이 데이터베이스가 함께 제공됩니다.
파일은 데이터를 저장하는데 왜 아직도 DBA를 사용하는 걸까요? 두 가지 이유가 있습니다.
1 데이터 레코드의 저장 길이가 고정되어 있지 않을 수 있습니다.

2 인덱스를 사용하여 데이터를 저장하고 검색합니다.
DbaReader는 INI 파일 데이터에 액세스하기 위한 반복적인 방법을 제공합니다. 삭제된 데이터를 저장해야 한다면 어떻게 될까요? 따라서 DbaArray는 DbaReader를 상속받아 이 함수를 구현합니다.



코드 복사

코드는 다음과 같습니다.


클래스 DbaArray 확장 DbaReader 구현 ArrayAccess
{
/**
* 읽기 전용 모드에서 $handler를 사용하여 데이터베이스 $file을 엽니다.
*
* @param file 열려는 데이터베이스 파일입니다.
* @param handler 데이터베이스 액세스에 사용하는 핸들러.取值http://www.php.net/manual/en/dba.requirements.php
*/
함수 __construct($file, $handler)
{
$this->db = dba_popen($file, "c", $handler);
if (!$this->db) {
새로운 예외 발생("Databse를 열 수 없습니다.");
}
}
/**
* 데이터베이스를 닫습니다.
*/
function __destruct()
{
parent::__destruct();
}
/**
* 항목을 읽어보세요.
*
* @param $name에서 읽을 키
* @return $name과 연결된 값
*/
function offsetGet($name)
{
$data = dba_fetch($name, $this->db);
if($data) {
if (ini_get('magic_quotes_runtime')) {
$data = Stripslashes($data);
}
//return unserialize($data);
$data를 반환합니다.
}
else
{
NULL을 반환합니다.
}
}
/**
* 항목을 설정하세요.
*
* @param $name 쓸 키
* @param $value 쓸 값
*/
함수 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,内容如下:

复主代码 代码如下:


호스트 = 로컬호스트
비밀번호 = 비밀번호
데이터베이스 = 데이터


文件index.php.代码如下:

复제代码 代码如下:


function loadClass($class)
{
require_once __DIR__.DIRECTORY_SEPARATOR.$class.'.php ';
}
spl_autoload_register('loadClass',false);
$iniFile = __DIR__.DIRECTORY_SEPARATOR.'test.ini';
$ini = new DbaArray($iniFile,'iniFile');
echo $ini['데이터베이스'];
var_dump($ini);
?>


--EOF--
看完上面这一段,是不是有什么想法?还是比较推荐于parse_ini_file 의 유형은 다음과 같습니다.

以上就介绍了查看电脑配置软件 php INI配置文件的解析实现分析,包括了查看电脑配置软件方件 内容,希望对PHP教程에는 朋友有所帮助이 있습니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿