php实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法
001 | <?php |
002 | /** |
003 | php实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。 |
004 | 此文本数据库共有字段9个: |
005 | private $bankid; //银行ID |
006 | private $bankname; //银行名称 |
007 | private $bankimg; //银行图片 |
008 | private $bankarea; //覆盖区域 |
009 | private $bankcard; //受理卡种 |
010 | private $banklimit; //支付限额 |
011 | private $bankpasswd; //交易密码 |
012 | private $banknote; //银行信息备注 |
013 | private $bankmiss; //银行其他信息内容。 |
014 | @abstract TxtDB store |
015 | @access public |
016 | @author yuchao1@staff.sina.com.cn |
017 | |
018 | */ |
019 |
020 | class TxtDB { |
021 | |
022 | private $bankid ; //银行ID |
023 | private $bankname ; //银行名称 |
024 | private $bankimg ; //银行图片 |
025 | private $bankarea ; //覆盖区域 |
026 | private $bankcard ; //受理卡种 |
027 | private $banklimit ; //支付限额 |
028 | private $bankpasswd ; //交易密码 |
029 | private $banknote ; //银行信息备注 |
030 | private $bankmiss ; //银行其他信息 |
031 | |
032 |
033 | public function __construct() { |
034 | $bankid = "" ; //银行ID |
035 | $bankname = "" ; //银行名称 |
036 | $bankimg = "" ; //银行图片 |
037 | $bankarea = "" ; //覆盖区域 |
038 | $bankcard = "" ; //受理卡种 |
039 | $banklimit = "" ; //支付限额 |
040 | $bankpasswd = "" ; //交易密码类型 |
041 | $banknote = "" ; //银行信息备注 |
042 | $bankmiss = "" ; //银行其他信息 |
043 | } |
044 | /** |
045 | * 加入数据程序段。 |
046 | * $bankinfo array 要插入的银行信息列表 |
047 | * $bankinfo["bankid"]$bankinfo["bankname"]$bankinfo["bankimg"]$bankinfo["bankarea"] |
048 | * $bankinfo["bankcard"]$bankinfo["banklimit"] |
049 | * $bankinfo["bankpasswd"]$bankinfo["banknote"]$bankinfo["bankmiss"] |
050 | * @return boolean 成功 true |
051 | * 失败 false |
052 | */ |
053 | public static function insert( $bankinfo ) { |
054 | $date = date ( "Y-m-d H:i:s" ); //取得系统时间 |
055 |
056 | foreach ( $bankinfo as $key => $value ) { |
057 | $key = trim ( $value ); //去掉银行内容后面的空格. |
058 | } |
059 | try { |
060 | $fp = fopen ( "banklist.txt" , "a" ); //以只写模式打开banklist.txt文本文件,文件指针指向文件尾部. |
061 | $str = $bankinfo [ "bankid" ] . "|" . $bankinfo [ "bankname" ] . "|" . $bankinfo [ "bankimg" ] . "|" . |
062 | $bankinfo [ "bankarea" ] . "|" . $bankinfo [ "bankcard" ] . "|" . $bankinfo [ "banklimit" ] . "|" . |
063 | $bankinfo [ "bankpasswd" ] . "|" . $bankinfo [ "banknote" ] . "|" . $bankinfo [ "bankmiss" ] . "|" . $date . "\r\n" ; |
064 | //将所有银行的数据赋予变量$str,"|"的目的是用来今后作数据分割时的数据间隔符号。 |
065 | fwrite ( $fp , $str ); //将数据写入文件 |
066 | fclose ( $fp ); //关闭文件 |
067 | //其中的$banklist是由银行表单传过来的数据。 |
068 | return true; |
069 | } catch ( Exception $e ) { |
070 | return false; |
071 | } |
072 | } |
073 | |
074 | public static function show() { |
075 | //数据显示程序段 |
076 | if ( file_exists ( "banklist.txt" )) { //检测文件是否存在 |
077 | $array = file ( "banklist.txt" ); //将文件全部内容读入到数组$array |
078 | $arr = array_reverse ( $array ); //将$array里的数据安行翻转排列(即最后一行当第一行,依此类推)读入数组$arr的每一个单元($arr[0]...)。 |
079 | } |
080 | var_dump ( $arr ); |
081 | } |
082 | |
083 | /** |
084 | * 数据修改程序段 |
085 | * $bankinfo array 要插入的银行信息列表 |
086 | * $bankinfo["bankid"]$bankinfo["bankname"]$bankinfo["bankimg"]$bankinfo["bankarea"] |
087 | * $bankinfo["bankcard"]$bankinfo["banklimit"] |
088 | * $bankinfo["bankpasswd"]$bankinfo["banknote"]$bankinfo["bankmiss"] |
089 | * @return boolean 成功 true |
090 | * 失败 false |
091 | */ |
092 | public static function alter( $bankinfo ) { |
093 | $date = date ( "Y-m-d H:i:s" ); //取得系统修改时间 |
094 | $list = file ( "banklist.txt" ); //读取整个banklist.txt文件到数组$list,数组每一个元素为一条银行($list[0]是第一条银行的数据、$list[1]是第一条银行的数据..... |
095 | $n = count ( $list ); //计算$list内容里的银行总数,并赋予变量$n |
096 | foreach ( $bankinfo as $key => $value ) { |
097 | $key = trim ( $value ); //去掉银行内容后面的空格. |
098 | } |
099 | if ( $n > 0) { //如果银行数大于0 |
100 | $fp = fopen ( "banklist.txt" , "w" ); //则以只写模式打开文件banklist.txt |
101 | |
102 | for ( $i = 0; $i < $n ; $i ++) { //进入循环 |
103 | if ( eregi ( $bankinfo [ "bankid" ], $list [ $i ] )) { //将传银行bankid与数组单元$list里内容进行字串匹配比较 |
104 | $f = explode ( "|" , $list [ $i ] ); //如果找到匹配,就以"|"作为分隔符,切开银行信息$list[$i](第$i条银行),并将这些数据赋予数组$f |
105 | $f [0] = $bankinfo [ "bankid" ]; |
106 | $f [1] = $bankinfo [ "bankname" ]; |
107 | $f [2] = $bankinfo [ "bankimg" ]; |
108 | $f [3] = $bankinfo [ "bankarea" ]; |
109 | $f [4] = $bankinfo [ "bankcard" ]; |
110 | $f [5] = $bankinfo [ "banklimit" ]; |
111 | $f [6] = $bankinfo [ "bankpasswd" ]; |
112 | $f [7] = $bankinfo [ "banknote" ]; |
113 | $f [8] = $bankinfo [ "bankmiss" ]; |
114 | $f [9] = $date ; |
115 | $list [ $i ] = $f [0] . "|" . $f [1] . "|" . $f [2] . "|" . $f [3] . "|" . $f [4] . "|" . $f [5] . "|" . $f [6] . "|" . $f [7] . "|" . $f [8] . "|" . $f [9] . "\r\n" ; |
116 | //将数组单元$list[$i]的内容用数组$f加上分隔符"|"代替。 |
117 | break ; //跳出循环 |
118 | } |
119 | } //循环结束符 |
120 | } |
121 | for ( $i = 0; $i <= $n ; $i ++) { //进入循环 |
122 | fwrite ( $fp , $list [ $i ] ); //将数组$list的每个单元为一行,写入文件banklist.txt |
123 | } //循环结束符 |
124 | fclose ( $fp ); //关闭文件 |
125 | } |
126 | /** |
127 | * 数据删除程序段 |
128 | * @param $bankid 银行id号 |
129 | * @return boolean true 成功 |
130 | * false 失败 |
131 | * |
132 | */ |
133 | public static function delete ( $bankid ) { |
134 | $list = file ( "banklist.txt" ); //读取整个banklist.txt文件到数组$list,数组每一个元素为一条银行($list[0]是第一条银行的数据、$list[1]是第一条银行的数据..... |
135 | $n = count ( $list ); //计算$list内容里的银行总数,并赋予变量$n |
136 | if ( $n > 0) { //如果银行数大于0 |
137 | $fp = fopen ( "banklist.txt" , "w" ); //则以只写模式打开文件banklist.txt |
138 | for ( $i = 0; $i < $n ; $i ++) { //进入循环 |
139 | if ( eregi ( $bankid , $list [ $i ] )) { //将发送过来的银行$bankid与数组$list[$i]里的字串进行匹配比较 |
140 | $list [ $i ] = "" ; //如果匹配成功,则将$list[$i]清空(达到删除的目的) |
141 | break ; //跳出循环 |
142 | } |
143 | } //循环结束符 |
144 | FOR( $i = 0; $i <= $n ; $i ++) { //进入循环 |
145 | fwrite ( $fp , $list [ $i ] ); //将数组$list的每个单元为一行,写入文件banklist.txt |
146 | } //循环结束符 |
147 | fclose ( $fp ); //关闭文件 |
148 | } |
149 | } |
150 | |
151 | /** |
152 | * 数据查询程序段 |
153 | * @param $bankid 银行ID号 |
154 | * @return boolean 成功返回ture |
155 | * 失败返回 false |
156 | * |
157 | */ |
158 | public static function select( $bankid ) { |
159 | $id = 0; |
160 | $list = file ( "banklist.txt" ); //读取整个banklist.txt文件到数组$list, |
161 | //数组每一个元素为一条银行($list[0]是第一条银行的数据、$list[1]是第二条银行的数据..... |
162 | $n = count ( $list ); //计算$list内容里的银行总数,并赋予变量$n |
163 | $bankid = trim ( $bankid ); |
164 | if (! $bankid ) { //如果$bankid为假 |
165 | echo "您没有输入任何关键字!" ; //作相关显示 |
166 | return false; |
167 | } else { |
168 | if ( $n > 0) { //如果银行数大于0 |
169 | for ( $i = 0; $i < $n ; $i ++) { //进入循环 |
170 | if ( eregi ( $bankid , $list [ $i ] )) { //输入的关键字与数组$list[$i]里的字串进行匹配比较 |
171 | $row = explode ( "|" , $list [ $i ] ); |
172 | $id = 1; //如果找到匹配,就以"|"作为分隔符,切开银行信息$list[$i](第$i条银行),并将这些数据赋予数组$row.并将变量$id赋予1,以便作为是否找到匹配的判断。 |
173 | list ( $bankid , $bankname , $bankimg , $bankarea , $bankcard , $banklimit , $bankpasswd , $banknote , $bankmiss ) = $row ; //将数组$row里的单元数据按顺序赋予括号里的变量 |
174 | //echo $bankname; |
175 | return $row ; |
176 | } |
177 | } //循环结束符 |
178 | } |
179 | } |
180 | if ( $id == 0) { |
181 | echo "没有找到与关键字匹配的银行!" ; |
182 | return false; |
183 | } //如果$id=0则表示没找到匹配,显示相关提示 |
184 | |
185 |
186 | } |
187 | |
188 | public function __destruct() { |
189 | |
190 | } |
191 | } |
192 | ?> |