PHP:读取ini xml等配置文件
我们在开发程序的时候会经常用到数据存储这一块。一般呢,如果数据不多,我们一般都会选择把数据把数据保存在本地的配置上面。而配置文件最常见到的格式主要有ini xml等几种格式。大家为什么把数据保存在文本类型的文件里面,我也不知道。也许是读取速度上面
我们在开发程序的时候会经常用到数据存储这一块。一般呢,如果数据不多,我们一般都会选择把数据把数据保存在本地的配置上面。而配置文件最常见到的格式主要有ini xml等几种格式。大家为什么把数据保存在文本类型的文件里面,我也不知道。也许是读取速度上面的差异吧。好了,下面我们来看看,PHP怎么从本地的配置文件里面读取数据,并获得自己所需的部分呢。
<?php class Settings { var $_settings = array (); function get($var) { $var = explode ( ‘.’, $var ); $result = $this->_settings; foreach ( $var as $key ) { if (! isset ( $result [$key] )) { return false; } $result = $result [$key]; } return $result; } function load() { trigger_error ( ’Not yet implemented’, E_USER_ERROR ); } } class Settings_PHP extends Settings { function load($file) { if (file_exists ( $file ) == false) { return false; } // Include file include ($file); unset ( $file ); // Get declared variables $vars = get_defined_vars (); // Add to settings array foreach ( $vars as $key => $val ) { if ($key == ’this’) continue; $this->_settings [$key] = $val; } } } class Settings_INI extends Settings { function load($file) { if (file_exists ( $file ) == false) { return false; } $this->_settings = parse_ini_file ( $file, true ); } } class Settings_YAML extends Settings { function load($file) { if (file_exists ( $file ) == false) { return false; } include (‘spyc.php’); $this->_settings = Spyc::YAMLLoad ( $file ); } } class Settings_XML extends Settings { function load($file) { if (file_exists ( $file ) == false) { return false; } include (‘xmllib.php’); $xml = file_get_contents ( $file ); $data = XML_unserialize ( $xml ); $this->_settings = $data ['settings']; } } ?> php /** * 针对PHP的配置,如有配置文件 *config.php <?php $db = array(); // Enter your database name here: $db['name'] = ’test’; // Enter the hostname of your MySQL server: $db['host'] = ’localhost’; ?> //具体调用: include (‘settings.php’); //原始环境假设每个类为单独的一个类名.php文件 // Load settings (PHP) $settings = new Settings_PHP; $settings->load(‘config.php’); echo ’PHP: ’ . $settings->get(‘db.host’) . ”; * */ 读取INI文件,主要用到parser_ini_file函数,该函数返回一个数组,如第二个参数为true时则返回多维数组 /** * ini例子:config.ini * [db] name = test host = localhost //调用例子: $settings = new Settings_INI; $settings->load(‘config.ini’); echo ’INI: ’ . $settings->get(‘db.host’) . ”; */ 读取XML文件,需要用到XML_PARSER,xmllib.php在http://hudeyong926.iteye.com/admin/blogs/836048 /** * XML例子:config.xml <?xml version=”1.0″ encoding=”UTF-8″?> <settings> <db> <name>test</name> <host>localhost</host> </db> </settings> // Load settings (XML) $settings = New Settings_XML; $settings->load(‘config.xml’); echo ’XML: ’ . $settings->get(‘db.host’) . ”; * */ 读取YAML格式文件,使用YAML必须使用到SPYC这个库,相关链接在http://spyc.sourceforge.net/ /** YAML配置例子:config.yaml db: name: test host: localhost // Load settings (YAML) $settings = New Settings_YAML; $settings->load(‘config.yaml’); echo ’YAML: ’ . $settings->get(‘db.host’) . ”; */ 1。ini有点过时?? 2。xml比较好, 3。yaml很好,但是毕竟没有标准化。 4。txt要自己组织格式,开放性不好。 5。类序列化。比较好,但是不熟悉的人使用比较麻烦! 6。php定义常量(你不用修改数据吗?) 所以:xml最好。
当然了,如果数据庞大,我们就需要借助数据库来保存数据了。为了执行速度,更为了安全……
转载请注明:IT路人 » PHP:读取ini xml等配置文件

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
