`
wangminshe89
  • 浏览: 669548 次
文章分类
社区版块
存档分类
最新评论

文本数据库自定义函数集0.2测试版

 
阅读更多
<?php
/*************************************************
^^^^^^^^文本数据库自定义函数集0.2测试版^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
此函数集适用于:以文本格式存储数据,以一行为一条记录,以分隔符分隔字段的文本结构数据库。
联系方法:xbrid@163.com
技术支持:http://PHPLink.126.com
版权所有:PHP初学者联盟,未经允许不得删除版权信息
程序编写:xbrid
修改日期:2003.04.30
**************************************************/
/*
使用方法:
注意:在文本数据库中,如果使用关键字,此关键字最好要唯一,否则其删除修改时只会操作第一条记录。
text_append($filename,$linecon)→数据追加函数,返回1为成功,0为不成功
text_locate($filename,$keyword,$cutword,$colnum)→数据查找函数,如果查找到则返回此条记录,否则返回0
text_delete($filename,$keyword,$cutword,$colnum)→数据删除函数,如果有此记录则删除并返回1,否则返回0
text_modify($filename,$keyword,$cutword,$colnum,$modify)→数据修改函数,如果有此记录并修改成功返回1,否则返回0
text_insert($filename,$keyword,$cutword,$colnum,$insert)→数据插入函数,插入在关键字记录前
text_insertb($filename,$keyword,$cutword,$colnum,$insert)→数据插入函数,插入在关键字记录前
text_sort($filename,$cutword,$colnum,$mode)→数据排序函数,排序后文件被排序后生成的文件覆盖
text_select($filename,$keyword,$cutword,$colnum)→多条记录查找函数,返回多条与关键字相同的记录
text_find($filename,$keyword,$cutword,$colnum)→模糊查询函数,返回字段中包含关键字的所有记录


$filename→文件名
$linecon→要追加的内容
$keyword→查找或删除等操作时使用的关键字,此关键字要唯一。
$cutword→分隔符
$colnum→关键字(字段)所在的列,列是从0开始排列的
$modify→要修改的内容

修改或追加的内容要与本函数库适用的格式相符合
*/

//数据库追加函数
function text_append($filename,$linecon)
{
$fp=fopen($filename,"a");
flock($fp,2);
$file=fwrite($fp,$linecon);
fclose($fp);
return $file;
}
//文本数据库查找函数→结果是返回第一条记录
function text_locate($filename,$keyword,$cutword,$colnum)
{
$filelist=file($filename);
$listnum=count($filelist);
for ($i=0;$i<$listnum;$i++) {
$list=explode($cutword,$filelist[$i]);
if ($keyword==$list[$colnum]) {
return $list;
}
}
return 0;
}
//文本数据库删除记录函数
function text_delete($filename,$keyword,$cutword,$colnum)
{
$filelist=file($filename);
$listnum=count($filelist);
$fp=fopen($filename,"w");
flock($fp,2);
$yesno=1;
for ($i=0;$i<$listnum;$i++) {
$list=explode($cutword,$filelist[$i]);
if ($keyword==$list[$colnum] and $yesno==1) {
$yesno=0;
$returnkey=1;
continue;
}
fputs($fp,$filelist[$i]);
}
fclose($fp);
if (empty($returnkey)) $returnkey=0;
return $returnkey;
}
//文本数据库修改记录函数
function text_modify($filename,$keyword,$cutword,$colnum,$modify)
{
$filelist=file($filename);
$listnum=count($filelist);
$fp=fopen($filename,"w");
flock($fp,2);
$yesno=1;
for ($i=0;$i<$listnum;$i++) {
$list=explode($cutword,$filelist[$i]);
if ($keyword==$list[$colnum] and $yesno==1) {
fputs($fp,$modify);
$yesno=0;
$returnkey=1;
continue;
}
fputs($fp,$filelist[$i]);
}
fclose($fp);
if (empty($returnkey)) $returnkey=0;
return $returnkey;
}
//文本数据库插入记录函数→插入以关键字为记录的前面
function text_insert($filename,$keyword,$cutword,$colnum,$insert)
{
$filelist=file($filename);
$listnum=count($filelist);
$fp=fopen($filename,"w");
flock($fp,2);
for ($i=0;$i<$listnum;$i++) {
$list=explode($cutword,$filelist[$i]);
if ($keyword==$list[$colnum]) {
fputs($fp,$insert);
}
fputs($fp,$filelist[$i]);
}
fclose($fp);
}
//文本数据库插入记录函数→插入以关键字为记录的后面
function text_insertb($filename,$keyword,$cutword,$colnum,$insert)
{
$filelist=file($filename);
$listnum=count($filelist);
$fp=fopen($filename,"w");
flock($fp,2);
for ($i=0;$i<$listnum;$i++) {
fputs($fp,$filelist[$i]);
$list=explode($cutword,$filelist[$i]);
if ($keyword==$list[$colnum]) {
fputs($fp,$insert);
$returnkey=1;
}
}
fclose($fp);
if (empty($returnkey)) $returnkey=0;
return $returnkey;
}
//文本数据库排序
function text_sort($filename,$cutword,$colnum,$mode)
{
$list=file($filename);
for ($i=0;$i<count($list);$i++) {
$list1= explode($cutword, $list[$i]);
$list2[($list[$i])]=$list1[$colnum];
}
if ($mode=="a") {
@asort($list2);
@reset($list2);
}
if ($mode=="d") {
@arsort($list2);
@reset($list2);
}
for ($all=0;$all<=count($list2);$all++) {
$newlist[] = key($list2);
if (!(next($list2))) break;
}
$fp=fopen($filename,"w");
flock($fp,2);
$listnum=count($newlist);
for ($i=0;$i<$listnum;$i++) {
fputs($fp,$newlist[$i]);
}
fclose($fp);
}
//文本数据库多条记录查找函数→返回所有与关键字相同的数据
function text_select($filename,$keyword,$cutword,$colnum)
{
$filelist=file($filename);
$listnum=count($filelist);
for ($i=0;$i<$listnum;$i++) {
$list=explode($cutword,$filelist[$i]);
if ($keyword==$list[$colnum]) {
$newlist[]=$filelist[$i];
}
}
if (empty($newlist)) return 0;
else return $newlist;
}
//文本数据库模糊查找函数→返回所有包含关键字的数据
function text_find($filename,$keyword,$cutword,$colnum)
{
$filelist=file($filename);
$listnum=count($filelist);
for ($i=0;$i<$listnum;$i++) {
$list=explode($cutword,$filelist[$i]);
if (eregi($keyword,$list[$colnum])) {
$newlist[]=$filelist[$i];
}
}
if (empty($newlist)) return 0;
else return $newlist;
}
//自定义的数组排序
function array_sort($list,$cutword,$colnum,$mode)
{
for ($i=0;$i<count($list);$i++) {
$list1= explode($cutword, $list[$i]);
$list2[$list[$i]]=$list1[$colnum];
}
if ($mode=="a") {
@asort($list2);
@reset($list2);
}
if ($mode=="d") {
@arsort($list2);
@reset($list2);
}
for ($all=0;$all<count($list2);$all++) {
$newlist[]=key($list2);
if (!(next($list2))) break;
}
return $newlist;
}
/*************************************************
^^^^^^^^文本数据库自定义函数集0.2测试版^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
此函数集适用于:以文本格式存储数据,以一行为一条记录,以分隔符分隔字段的文本结构数据库。
联系方法:xbrid@163.com
技术支持:http://PHPLink.126.com
版权所有:PHP初学者联盟,未经允许不得删除版权信息
程序编写:xbrid
写作日期:2003.04.30
**************************************************/
/*
使用方法:
text_append($filename,$linecon)→数据追加函数
$filename是文件名,$linecon是要追加的内容,此内容的格式要与文件的分隔格式相同
函数返回值:1为成功,0为不成功。


text_locate($filename,$keyword,$cutword,$colnum)→数据查找函数
$filename为文件名,$keyword为查找关键字,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0
函数返回值:有此记录则返回此记录的数组(以分隔符分隔后的数据),否则返回0
注意:返回的数据值是字段值,此条记录是数据库中的查找结果的第一条记录。


text_delete($filename,$keyword,$cutword,$colnum)→数据删除函数,关键字要唯一,否则会删除所有与关键字相同的记录
$filename为文件名,$keyword为删除关键字,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0
函数返回值:有此记录则删除并返回1,否则返回0


text_modify($filename,$keyword,$cutword,$colnum,$modify)→数据修改函数
$filename为文件名,$keyword为修改关键字,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0
$modify为修改后内容,格式要与文件分隔格式相同
函数返回值:有此记录则修改,并返回1,否则返回0
此函数不改变此记录所在行


text_insert($filename,$keyword,$cutword,$colnum,$insert)→数据插入函数,插入位置在关键字前
$filename为文件名,$keyword为关键字,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0
$insert为要插入的内容,其格式要与文件分隔格式相同
函数返回值:有关键字记录则在其前插入并返回1,否则不对文件作修改并返回0


text_insertb($filename,$keyword,$cutword,$colnum,$insert)→数据插入函数,插入位置在关键字后
$filename为文件名,$keyword为修改关键字,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0
$insert为要插入的内容,其格式要与文件分隔格式相同
函数返回值:有关键字记录则在其后插入并返回1,否则不对文件作修改并返回0


text_sort($filename,$cutword,$colnum,$mode)→数据排序函数
$filename为文件名,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0,$mode为排列方式,a为升序d为降序
函数返回值:此函数无返回值,排序后此文件被重新排序的文件覆盖,此函数使用时要注意此点。


text_select($filename,$keyword,$cutword,$colnum)→多条数据查找函数
$filename为文件名,$keyword为查找关键字,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0
函数返回值:如果有关键字的记录则返回所有与关键字相同的记录数据,否则返回0
注意:返回的是记录数据,与数据库的格式相同,需要重新进行分隔。


text_find($filename,$keyword,$cutword,$colnum)→数据模糊查询函数
$filename为文件名,$keyword为查找关键字,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0
函数返回值:返回查找字段中包含此关键字的所有记录数据,否则返回0
注意:返回的是记录数据,是多条数据,与数据库的格式相同,需要重新进行分隔。


array_sort($list,$cutword,$colnum,$mode)→《数组》排序函数
$list为数组名,$cutword为分隔符,$colnum为关键字所在的列段,列段的起始号为0,$mode为排列方式,a为升序d为降序
函数返回值:返回值是排序后的数组,格式与排序前的一样,显示内容时,需要进行重新分隔处理。



*/
?>
分享到:
评论

相关推荐

    易语言模块914个

    外挂海USB按键测试版.ec 外挂海万能模块.ec 外挂海万能模块1.52.ec 外挂海万能模块1.57B.ec 外挂海万能模块1.58.ec 外挂海万能模块1.59.ec 外挂海万能模块1.71.ec 外挂海万能模块1.7贺岁版.ec 外挂海万能...

    易语言模块大全(共775个模块)

    读文本数据库(1.0).zip edb到html(1.0).zip EDB、高级表格、XLS互换模块(1.7).zip edb数据库增强(2.0).zip edb数据库文件转Excel文件1.5(1.5).zip edb数据库文件转Excel文件1.3(1.0).zip ETimeFly API模块(1.0).zip ...

    1345个易语言模块

    外 挂海USB按键测试版.ec 外挂海万能模块.ec 外挂海万能模块1.50.ec 外挂海万能模块1.52.ec 外挂海万能 模块1.56.ec 外挂海万能模块1.57B.ec 外挂海万能模块1.58.ec 外挂海万能模块1.59.ec 外挂海万 能模块1.7.ec ...

    1350多个精品易语言模块

    外 挂海USB按键测试版.ec 外挂海万能模块.ec 外挂海万能模块1.50.ec 外挂海万能模块1.52.ec 外挂海万能 模块1.56.ec 外挂海万能模块1.57B.ec 外挂海万能模块1.58.ec 外挂海万能模块1.59.ec 外挂海万 能模块1.7.ec ...

    易语言700模块打包

    读文本数据库(1.0).zip edb到html(1.0).zip EDB、高级表格、XLS互换模块(1.7).zip edb数据库增强(2.0).zip edb数据库文件转Excel文件1.5(1.5).zip edb数据库文件转Excel文件1.3(1.0).zip ETimeFly API模块(1.0...

    java源码包---java 源码 大量 实例

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包2

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    asp.net知识库

    关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory...

    java源码包3

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    java源码包4

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目源代码

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    JAVA上百实例源码以及开源项目

    5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...

    ExtAspNet_v2.3.2_dll

    -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -如何自定义Javascript脚本和C#处理函数来响应键盘事件。 -为Tree增加AutoLeafIdentification属性。 -增加示例(tree_auto_leaf_identification.aspx)(feedback:wdrabbit)。 +2009-11-17 v2.1.4 -修正...

    Java学习笔记-个人整理的

    {1.13.3.3}文本创建与编辑}{43}{subsubsection.1.13.3.3} {1.14}\texttt {PATH}}{43}{section.1.14} {1.14.1}Java的打包命令}{44}{subsection.1.14.1} {2}Everything is an Object }{45}{chapter.2} {2.1}类与...

Global site tag (gtag.js) - Google Analytics