解析文本文件格式如下
id name
1,peter
2,leo
6,wang
实现目的可以修改任一行的值(逗号后面) 增加新值 删除
<?php
/*
*@data 2010-9-6
*@author skipify
* */
class parse_text{
public $ffile;
public $aarray;
public $vars = array();
public $delimiter=",";//分隔的字符串
public $istrim=True;
public function __construct($file){
$this->ffile = $file;
if(file_exists($this->ffile)){
$this->aarray = file($this->ffile);
$this->aarray = array_slice($this->aarray,1);
$this->parse();
}else{
$this->aarray=array();
}
}
/*
*解析文件到一个数组
* */
private function parse(){
if($this->aarray){
foreach($this->aarray as $val){
$lines = explode($this->delimiter,$val);
if($this->istrim){
$lines[0] = trim($lines[0]);
$lines[1] = trim($lines[1]);
}// 如果需要去除空白则设置为True
if($lines[0] && $lines[1])
$this ->vars[$lines[0]] = str_replace("\n","",$lines[1]);
}
}else{
$this ->vars = array();
}
}
/*
*按照键值获取数据
* */
public function get($k){
if(isset($this->vars[$k]))
return $this->vars[$k];
return false;
}
/*
*按照键值删除数据
* */
public function delete($k){
unset($this->vars[$k]);
return $k;
}
/*
*删除第一个发现的值为$v的行
* */
public function deleteByValue($v){
$key = array_search($v,$this->vars);
unset($this->vars[$key]);//删除第一个发现的值为$v的行
}
/*
*键值对应设置修改
* */
public function set($k,$v){
if($k && $v)
$this->vars[$k]=$v;
return $k;
}
/*
*根据关联数组批量设置修改
* */
public function setGroup($a){
if(!is_array($a)){
return false;
}
foreach($a as $k=>$v){
$this->set($k,$v);
}
}
/*
*键值对应添加新行 已定义的则覆盖
* */
public function add($k,$v){
if($k && $v)
$this->vars[$k]=$v;//如果原来存在此键值则被覆盖
return $k;
}
/*
*关联数组添加新行 索引为id 值为name
* */
public function addGroup($a){
if(!is_array($a)){
return false;
}
foreach($a as $k=>$v){
$this->add($k,$v);
}
}
/*
*执行操作保存文件
* */
public function todo(){
$lines = array(0=>"id name");
foreach($this->vars as $k =>$v){
$lines[] = $k.$this->delimiter.$v;
}
$content = implode("\n",$lines);
$f = fopen($this->ffile,"w");
fwrite($f,$content);
fclose($f);
}
}
$t = new parse_text("test.txt");
$t->add("1","a");
$t->todo();//执行完新操作之后必须调用此方法以保存文件
?>
分享到:
相关推荐
标题中的“PHP解析shapefile文件”指的是使用PHP编程语言处理shapefile格式的地理空间数据。Shapefile是一种常见的矢量地理数据格式,常用于存储点、线、多边形等地理对象,广泛应用于GIS(地理信息系统)领域。PHP...
压缩包子文件的文件名"zbateson-mail-mime-parser-63bedd7"可能表示这是zbateson开发的邮件MIME解析器的一个特定版本。zbateson可能是一位开源开发者或团队,而"63bedd7"通常是Git仓库中的一个提交哈希,代表代码库...
在给定的“php dom 解析类和函数文件封装”主题中,我们可以深入探讨PHP如何利用DOM进行HTML解析。 `simple_html_dom`是PHP的一个开源库,它简化了HTML文档的处理,使得开发者可以像操作DOM节点一样操作HTML。`...
本文将深入探讨"PHP解析HTML代码库",包括其核心概念、用途以及如何使用。 1. **核心概念**: - **DOM(Document Object Model)**: DOM是HTML和XML文档的标准表示方法,它将文档视为一个可编程的对象树。PHP中的`...
1. **读取图像**:首先,类库需要能够读取二维码图像文件,这通常是一个PNG、JPEG或BMP格式的图片。通过GD库或Imagick扩展,类库可以加载图像并准备进行分析。 2. **预处理**:图像可能需要进行一些预处理步骤,如...
M3U8文件本质上是一个文本文件,包含了媒体文件的URL列表。每个URL指向一个TS(Transport Stream)分片,这些分片按顺序播放,形成连续的视频流。M3U8还支持加密、编码格式、分辨率等元数据的描述,使得它能够适应...
而`php模版解析类`文件很可能是实现这个功能的PHP源代码,我们可以查看其内部实现,学习如何编写这样的解析类,或者直接将其集成到我们的项目中。 通过深入理解并应用这样的PHP模板解析类,我们可以提高开发效率,...
一次解析就是通过特定算法或工具解密这些URL,将其转化为可播放的形式。在这个案例中,接口地址`http://localhost/xw.php?url=视频地址`就是一次解析的入口,传入视频的原始URL,它将返回适合播放的链接。 接下来,...
首先,我们要理解PHP解析邮件的基本原理。这通常涉及到IMAP(Internet Message Access Protocol)和POP3(Post Office Protocol version 3)协议,它们用于从邮件服务器接收邮件。在PHP中,`imap`函数库提供了与邮件...
本篇文章将详细介绍一个PHP XML解析类的使用,以及如何通过该类来解析XML文件。 首先,我们要了解PHP提供的XML解析方法。PHP提供了两种主要的XML解析方式:DOM(Document Object Model)和SAX(Simple API for XML...
2. **编译模板**:当模板被首次请求或者缓存过期时,Smarty会读取模板文件,通过内置的模板语言解析器,将模板中的SMARTY语句(如{$var})转换为PHP代码。 3. **生成缓存文件**:编译完成后,Smarty会将生成的PHP...
例如,可以轻松获取特定ID或类名的元素,或者查找包含特定文本的元素。 2. 选择器支持:类似于jQuery的选择器语法,可以方便地定位到HTML元素。这使得开发者能快速找到目标元素,无需遍历整个DOM树。 3. 解析配置...
APK文件是基于Java的,通常需要JDK(Java Development Kit)来解析其内部结构,但在这个特定情况下,我们将学习如何利用PHP的内置功能来读取APK中的XML文件,从而避免依赖JDK。 首先,我们要了解XML文件在APK中的...
3. **解析响应**:发送请求后,服务器会返回一个包含文件信息的响应,通常是JSON格式。解析这个响应以获取下载链接和其他相关数据,例如文件大小、文件名等。 4. **生成直链**:一旦获得所需信息,源码中的模块可能...
:“php100-96PHP程序员经典面试&笔试题目解析(上).rar” 这个标题表明这是一个关于PHP程序员面试和笔试题目的资源集合,由“php100”可能是一个教育平台或者教程系列,而“96”可能是表示题目数量或者特定版本号...
- `web.config`:这通常是ASP.NET环境下的配置文件,但在这个PHP项目中,可能是用来存储特定环境配置或者某种替代性的配置信息。 - `editor`:可能包含文本编辑器的相关代码,用于编辑和发布内容。 综上所述,这个...
影视解析源码是XyPlayer的核心部分,它负责将视频链接转化为可以直接播放的格式。这种技术通常涉及HTTP或HTTPS请求,以及对响应数据的处理,例如M3U8、RTMP、HLS等流媒体协议的解析。源码中可能包含对不同视频源的...
1. **解析HTML5文档**:将HTML5字符串或文件解析为DOMDocument对象,方便进一步处理。 2. **创建和修改元素**:动态创建新的HTML元素,或者修改现有元素的属性和内容。 3. **选择和遍历元素**:使用XPath或CSS选择器...
标题中的“音乐解析源码,无需数据库”表明这是一个关于音乐解析的网站源代码,它不依赖于任何数据库系统,这通常意味着源代码可能使用了静态数据处理或存储方式,如文本文件、JSON或XML,或者它可能直接从外部API...