<?php
/**
php实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。
此文本数据库共有字段9个:
private $bankid; //银行ID
private $bankname; //银行名称
private $bankimg; //银行图片
private $bankarea; //覆盖区域
private $bankcard; //受理卡种
private $banklimit; //支付限额
private $bankpasswd; //交易密码
private $banknote; //银行信息备注
private $bankmiss; //银行其他信息内容。
@abstract TxtDB store
@access public
@author yuchao1@staff.sina.com.cn
*/
class
TxtDB {
private
$bankid
;
//银行ID
private
$bankname
;
//银行名称
private
$bankimg
;
//银行图片
private
$bankarea
;
//覆盖区域
private
$bankcard
;
//受理卡种
private
$banklimit
;
//支付限额
private
$bankpasswd
;
//交易密码
private
$banknote
;
//银行信息备注
private
$bankmiss
;
//银行其他信息
public
function
__construct() {
$bankid
=
""
;
//银行ID
$bankname
=
""
;
//银行名称
$bankimg
=
""
;
//银行图片
$bankarea
=
""
;
//覆盖区域
$bankcard
=
""
;
//受理卡种
$banklimit
=
""
;
//支付限额
$bankpasswd
=
""
;
//交易密码类型
$banknote
=
""
;
//银行信息备注
$bankmiss
=
""
;
//银行其他信息
}
/**
* 加入数据程序段。
* $bankinfo array 要插入的银行信息列表
* $bankinfo["bankid"]$bankinfo["bankname"]$bankinfo["bankimg"]$bankinfo["bankarea"]
* $bankinfo["bankcard"]$bankinfo["banklimit"]
* $bankinfo["bankpasswd"]$bankinfo["banknote"]$bankinfo["bankmiss"]
* @return boolean 成功 true
* 失败 false
*/
public
static
function
insert(
$bankinfo
) {
$date
=
date
(
"Y-m-d H:i:s"
);
//取得系统时间
foreach
(
$bankinfo
as
$key
=>
$value
) {
$key
= trim (
$value
);
//去掉银行内容后面的空格.
}
try
{
$fp
=
fopen
(
"banklist.txt"
,
"a"
);
//以只写模式打开banklist.txt文本文件,文件指针指向文件尾部.
$str
=
$bankinfo
[
"bankid"
] .
"|"
.
$bankinfo
[
"bankname"
] .
"|"
.
$bankinfo
[
"bankimg"
] .
"|"
.
$bankinfo
[
"bankarea"
] .
"|"
.
$bankinfo
[
"bankcard"
] .
"|"
.
$bankinfo
[
"banklimit"
] .
"|"
.
$bankinfo
[
"bankpasswd"
] .
"|"
.
$bankinfo
[
"banknote"
] .
"|"
.
$bankinfo
[
"bankmiss"
] .
"|"
.
$date
.
"\r\n"
;
//将所有银行的数据赋予变量$str,"|"的目的是用来今后作数据分割时的数据间隔符号。
fwrite (
$fp
,
$str
);
//将数据写入文件
fclose (
$fp
);
//关闭文件
//其中的$banklist是由银行表单传过来的数据。
return
true;
}
catch
( Exception
$e
) {
return
false;
}
}
public
static
function
show() {
//数据显示程序段
if
(
file_exists
(
"banklist.txt"
)) {
//检测文件是否存在
$array
= file (
"banklist.txt"
);
//将文件全部内容读入到数组$array
$arr
=
array_reverse
(
$array
);
//将$array里的数据安行翻转排列(即最后一行当第一行,依此类推)读入数组$arr的每一个单元($arr[0]...)。
}
var_dump (
$arr
);
}
/**
* 数据修改程序段
* $bankinfo array 要插入的银行信息列表
* $bankinfo["bankid"]$bankinfo["bankname"]$bankinfo["bankimg"]$bankinfo["bankarea"]
* $bankinfo["bankcard"]$bankinfo["banklimit"]
* $bankinfo["bankpasswd"]$bankinfo["banknote"]$bankinfo["bankmiss"]
* @return boolean 成功 true
* 失败 false
*/
public
static
function
alter(
$bankinfo
) {
$date
=
date
(
"Y-m-d H:i:s"
);
//取得系统修改时间
$list
= file (
"banklist.txt"
);
//读取整个banklist.txt文件到数组$list,数组每一个元素为一条银行($list[0]是第一条银行的数据、$list[1]是第一条银行的数据.....
$n
=
count
(
$list
);
//计算$list内容里的银行总数,并赋予变量$n
foreach
(
$bankinfo
as
$key
=>
$value
) {
$key
= trim (
$value
);
//去掉银行内容后面的空格.
}
if
(
$n
> 0) {
//如果银行数大于0
$fp
=
fopen
(
"banklist.txt"
,
"w"
);
//则以只写模式打开文件banklist.txt
for
(
$i
= 0;
$i
<
$n
;
$i
++) {
//进入循环
if
(
eregi
(
$bankinfo
[
"bankid"
],
$list
[
$i
] )) {
//将传银行bankid与数组单元$list里内容进行字串匹配比较
$f
=
explode
(
"|"
,
$list
[
$i
] );
//如果找到匹配,就以"|"作为分隔符,切开银行信息$list[$i](第$i条银行),并将这些数据赋予数组$f
$f
[0] =
$bankinfo
[
"bankid"
];
$f
[1] =
$bankinfo
[
"bankname"
];
$f
[2] =
$bankinfo
[
"bankimg"
];
$f
[3] =
$bankinfo
[
"bankarea"
];
$f
[4] =
$bankinfo
[
"bankcard"
];
$f
[5] =
$bankinfo
[
"banklimit"
];
$f
[6] =
$bankinfo
[
"bankpasswd"
];
$f
[7] =
$bankinfo
[
"banknote"
];
$f
[8] =
$bankinfo
[
"bankmiss"
];
$f
[9] =
$date
;
$list
[
$i
] =
$f
[0] .
"|"
.
$f
[1] .
"|"
.
$f
[2] .
"|"
.
$f
[3] .
"|"
.
$f
[4] .
"|"
.
$f
[5] .
"|"
.
$f
[6] .
"|"
.
$f
[7] .
"|"
.
$f
[8] .
"|"
.
$f
[9] .
"\r\n"
;
//将数组单元$list[$i]的内容用数组$f加上分隔符"|"代替。
break
;
//跳出循环
}
}
//循环结束符
}
for
(
$i
= 0;
$i
<=
$n
;
$i
++) {
//进入循环
fwrite (
$fp
,
$list
[
$i
] );
//将数组$list的每个单元为一行,写入文件banklist.txt
}
//循环结束符
fclose (
$fp
);
//关闭文件
}
/**
* 数据删除程序段
* @param $bankid 银行id号
* @return boolean true 成功
* false 失败
*
*/
public
static
function
delete
(
$bankid
) {
$list
= file (
"banklist.txt"
);
//读取整个banklist.txt文件到数组$list,数组每一个元素为一条银行($list[0]是第一条银行的数据、$list[1]是第一条银行的数据.....
$n
=
count
(
$list
);
//计算$list内容里的银行总数,并赋予变量$n
if
(
$n
> 0) {
//如果银行数大于0
$fp
=
fopen
(
"banklist.txt"
,
"w"
);
//则以只写模式打开文件banklist.txt
for
(
$i
= 0;
$i
<
$n
;
$i
++) {
//进入循环
if
(
eregi
(
$bankid
,
$list
[
$i
] )) {
//将发送过来的银行$bankid与数组$list[$i]里的字串进行匹配比较
$list
[
$i
] =
""
;
//如果匹配成功,则将$list[$i]清空(达到删除的目的)
break
;
//跳出循环
}
}
//循环结束符
FOR(
$i
= 0;
$i
<=
$n
;
$i
++) {
//进入循环
fwrite (
$fp
,
$list
[
$i
] );
//将数组$list的每个单元为一行,写入文件banklist.txt
}
//循环结束符
fclose (
$fp
);
//关闭文件
}
}
/**
* 数据查询程序段
* @param $bankid 银行ID号
* @return boolean 成功返回ture
* 失败返回 false
*
*/
public
static
function
select(
$bankid
) {
$id
= 0;
$list
= file (
"banklist.txt"
);
//读取整个banklist.txt文件到数组$list,
//数组每一个元素为一条银行($list[0]是第一条银行的数据、$list[1]是第二条银行的数据.....
$n
=
count
(
$list
);
//计算$list内容里的银行总数,并赋予变量$n
$bankid
= trim (
$bankid
);
if
(!
$bankid
) {
//如果$bankid为假
echo
"您没有输入任何关键字!"
;
//作相关显示
return
false;
}
else
{
if
(
$n
> 0) {
//如果银行数大于0
for
(
$i
= 0;
$i
<
$n
;
$i
++) {
//进入循环
if
(
eregi
(
$bankid
,
$list
[
$i
] )) {
//输入的关键字与数组$list[$i]里的字串进行匹配比较
$row
=
explode
(
"|"
,
$list
[
$i
] );
$id
= 1;
//如果找到匹配,就以"|"作为分隔符,切开银行信息$list[$i](第$i条银行),并将这些数据赋予数组$row.并将变量$id赋予1,以便作为是否找到匹配的判断。
list (
$bankid
,
$bankname
,
$bankimg
,
$bankarea
,
$bankcard
,
$banklimit
,
$bankpasswd
,
$banknote
,
$bankmiss
) =
$row
;
//将数组$row里的单元数据按顺序赋予括号里的变量
//echo $bankname;
return
$row
;
}
}
//循环结束符
}
}
if
(
$id
== 0) {
echo
"没有找到与关键字匹配的银行!"
;
return
false;
}
//如果$id=0则表示没找到匹配,显示相关提示
}
public
function
__destruct() {
}
}
?>