搜索
首页后端开发php教程PHP对文本数据库的操作方法有哪些?PHP对文本数据库操作的五种方法

php 对文本数据库数据的操作有哪些?PHP实现对文本数据库的数据有显示、加入、修改、删除、查询五大基本操作的方法 。那么,php 对文本数据库数据操作方法实现具体是怎样的,接下来我们就来看一看。
我用一个留言本程序作为例子,阐述PHP实现对文本数据库的数据显示、加入、修改、删除、查询五大基本操作的方法。
此文本数据库共有字段10个:客户IP、发言时间、客户名、客户EMAIL、客户主页地址、留言表情图片名、客户QQ、客户形象图片、留言内容、管理员回复内容。

1、加入数据程序段。

$date=date("Y-m-d H:i:s");//取得系统时间 
$ip = $HTTP_SERVER_VARS[REMOTE_ADDR]; //取得发言的IP地址 
$text=encode($gb_text);//去掉留言内容后面的空格. 
$fp=fopen("gb.dat","a");//以只写模式打开gb.dat文本文件,文件指针指向文件尾部. 
$str=$ip." ".$date." ".$gb_name." ".$gb_email." ".$gb_home." ".$face." ".$gb_qq." ".$head." ".$text." ".$reply."\n";//将所有留言的数据赋予变量$str," "的目的是用来今后作数据分割时的数据间隔符号。 
fwrite($fp,$str);//将数据写入文件 
fclose($fp);//关闭文件 
showmessage("留言成功!","index.php","3");//留言成功,3秒后自动返回主界面。

其中的$gb_name 、$gb_email、$gb_home、$face、$gb_qq、$head、$gb_text、$reply是由发言表单传过来的数据。

2、数据显示程序段

<? 
if (file_exists("gb.dat")){//检测文件是否存在 
$array=file("gb.dat");//将文件全部内容读入到数组$array 
$arr=array_reverse($array);//将$array里的数据安行翻转排列(即最后一行当第一行,依此类推)读入数组$arr的每一个单元($arr[0]...)。 
$num=count($array);//获取数组$array里的信息数(一行为一条信息) 
if ($num>0){//如果信息数大于零(即文本数据库不为空) 
$total=ceil($num/$pagesize);//计算总页数(取最大整数,即凡有小数点都进一取整,$pagesize为预设的每页显示的信息数) 
if($page<1){//如果当前页面数码号小于1 
$page=1;//则赋值为1 
} 
$number=($page-1)*$pagesize;//计算当前所显示第一个留言的数码号(数码号从零开始,主要是达到与数组单元号对应的目的) 
for($i=0;$i<=$pagesize-1;$i++){//进入循环 
$row=explode(" ",$arr[$number]);//以" "作为分割符,分割数组$arr中每第$number个单元的数据,并将这些数据赋予数组$rom 
list($ip,$datetime,$name,$email,$home,$face,$qq,$head,$text,$reply)=$row;//将数组$row里的单元数据按顺序赋予括号里的变量 
?> 
<img src=<? echo $head ?> >//显示客户形象图片 
<br> 
<font color="#0099CC">昵称【<? echo $name ?><font size="2">】<br>//显示客户名 
发表于:<? echo $datetime ?>//显示留言发表时间 
<br> 
<img src=<? echo $face ?>>//显示客户留言表情图片 
<? echo $name ?>说:<? echo $text; ?>//显示客户留言内容 
<br> 
<? echo $reply ?>//显示回复内容 
<br> 
<a href="<? echo $home ?>" target="_blank">访问<? echo $name ?>的主页</a>//客户主页的超连接 
<a href="mailto:<? echo $email ?>">给<? echo $name ?>发信</a>//客户E-MAIL的连接 
<? echo $name ?>的QQ号码是<? echo $qq ?>//显示客户的QQ号码 
<? echo $name ?>的IP地址为<? echo $ip ?>" //显示客户的IP地址 
<a href="reply.php?time=<? echo $datetime ?>">回复</a>//留言回复的连接语句 
<a href="del.php?time=<? echo $datetime ?>">删除</a>//留言删除的语句(以客户留言时间$datetime作为删除标识) 
<br> 
<? 
if ($number == $num-1)//如果数组的单元号等于总留言数减一(因为单元号以零开始的,所以这意味着这是最后一条留言) 
{ 
break;//跳出循环 
} 
$number = $number + 1; //数组单元号加1 
}//循环结束符 
} 
if ($page <> 1)//如果当前页面数码号不等于1 
{ 
$back = $page - 1;//当前页面数码号减1,并将此值赋予变量$back 
echo "<a href=index.php?page=1>第一页</a>";//显示第一页的连接 
echo " <a href=index.php?page=$back>上一页</a>" ;当前页面数码号等于$back,并显示其连接 
} 
if ($page <> $total)//如果当前页面数码号不等于总页数号(最后一页数码号) 
{ 
$next = $page + 1;//当前页面数码号加1并赋予变量$next 
echo " <a href=index.php?page=$next>下一页</a>" ;//显示下一页连接 
echo " <a href=index.php?page=$total>最后一页</a>"; 显示最后一页连接 
} 
echo "页数:$page / $total";//显示当前页面数码号和显示最后一页数码号 
echo "共有 $num 条留言";//显示留言数信息 
} 
else { 
echo "<center>当前没有任何留言!</center>";//如果文件内容为空则显示的信息 
} 
else { 
echo "<center>数据文件丢失,请联系管理员!或发布留言重新建立数据文件!</center>";//如果文件不存在显示的信息 
}

3、数据修改程序段

$list=file("gb.dat");//读取整个gb.dat文件到数组$list,数组每一个元素为一条留言($list[0]是第一条留言的数据、$list[1]是第一条留言的数据..... 
$n=count($list);//计算$list内容里的留言总数,并赋予变量$n 
if ($n>0){ //如果留言数大于0
$fp=fopen("gb.dat","w");//则以只写模式打开文件gb.dat 
$gb_reply=encode($gb_reply); 
for ($i=0;$i<$n;$i++) {//进入循环 
if(eregi($ttime,$list[$i])){//将送来发留言时间$ttime与数组单元$list里内容进行字串匹配比较 
$f=explode(" ",$list[$i]);//如果找到匹配,就以" "作为分隔符,切开留言信息$list[$i](第$i条留言),并将这些数据赋予数组$f 
$f[9]=$gb_reply;//将$f[9](留言信息最后一条数据)用$gb_reply(回复内容)代替。 
$list[$i]=$f[0]." ".$f[1]." ".$f[2]." ".$f[3]." ".$f[4]." ".$f[5]." ".$f[6]." ".$f[7]." ".$f[8]." ".$f[9]."\n";
 //将数组单元$list[$i]的内容用数组$f加上分隔符" "代替(其中$f[9]是修改了的新数据)。 
break;//跳出循环 
} 
}//循环结束符 
} 
FOR($i=0;$i<=$n;$i++){//进入循环 
fwrite($fp,$list[$i]);//将数组$list的每个单元为一行,写入文件gb.dat 
}//循环结束符 
fclose($fp);//关闭文件 
showmessage("回复成功!","index.php");//回复成功,自动返回主界面。

4、数据删除程序段

$list=file("gb.dat");//读取整个gb.dat文件到数组$list,数组每一个元素为一条留言($list[0]是第一条留言的数据、$list[1]是第一条留言的数据..... 
$n=count($list);//计算$list内容里的留言总数,并赋予变量$n 
if ($n>0){//如果留言数大于0 
$fp=fopen("gb.dat","w");//则以只写模式打开文件gb.dat 
for ($i=0;$i<$n;$i++) {//进入循环 
if(eregi($ttime,$list[$i])){//将发送过来发留言时间$ttime与数组$list[$i]里的字串进行匹配比较 
$list[$i]="";//如果匹配成功,则将$list[$i]清空(达到删除的目的) 
break;//跳出循环 
} 
}//循环结束符 
FOR($i=0;$i<=$n;$i++){//进入循环 
fwrite($fp,$list[$i]);//将数组$list的每个单元为一行,写入文件gb.dat 
} //循环结束符 
fclose($fp);//关闭文件 
showmessage("删除成功!","index.php");//删除成功,自动返回主界面。 
}

5、数据查询程序段

<form action="search.php" method="post"> 
<font color="#0099CC" size="2">搜索关键字: 
<input name="found" type="text" id="found" style="background-color:#FFFFFF; color:#8888AA; border: 1 double #3399CC" size="12"> 
<input name="submit" type="image" src="image/search.gif" alt="留言搜索"> 
</font></td>
</tr> 
</table> 
</form> 
////////////////////////////////上面是搜索表单语句段 
<? 
$id=0; 
$list=file("gb.dat");//读取整个gb.dat文件到数组$list,数组每一个元素为一条留言($list[0]是第一条留言的数据、$list[1]是第一条留言的数据..... 
$n=count($list);//计算$list内容里的留言总数,并赋予变量$n 
$found=trim($found); 
if (!$found){ //如果$found为假 
echo "<center>您没有输入任何关键字!</center>";//作相关显示 
} 
else { 
if($n>0){//如果留言数大于0 
for ($i=0;$i<$n;$i++) {//进入循环 
if(eregi($found,$list[$i])){//输入的关键字与数组$list[$i]里的字串进行匹配比较 
$row=explode(" ",$list[$i]); $id=1; //如果找到匹配,就以" "作为分隔符,切开留言信息$list[$i](第$i条留言),并将这些数据赋予数组$row.并将变量$id赋予1,以便作为是否找到匹配的判断。 
list($ip,$datetime,$name,$email,$home,$face,$qq,$head,$text,$reply)=$row;//将数组$row里的单元数据按顺序赋予括号里的变量 
?> 
<img src=<? echo $head ?> >//显示客户形象图片 
<br> 
<font color="#0099CC">昵称【<? echo $name ?><font size="2">】<br>//显示客户名 
发表于:<? echo $datetime ?>//显示留言发表时间 
<br> 
<img src=<? echo $face ?>>//显示客户留言表情图片 
<? echo $name ?>说:<? echo $text; ?>//显示客户留言内容 
<br> 
<? echo $reply ?>//显示回复内容 
<br> 
<a href="<? echo $home ?>" target="_blank">访问<? echo $name ?>的主页</a>//客户主页的超连接 
<a href="mailto:<? echo $email ?>">给<? echo $name ?>发信</a>//客户E-MAIL的连接 
<? echo $name ?>的QQ号码是<? echo $qq ?>//显示客户的QQ号码 
<? echo $name ?>的IP地址为<? echo $ip ?>" //显示客户的IP地址 
<a href="reply.php?time=<? echo $datetime ?>">回复</a>//留言回复的连接语句 
<a href="del.php?time=<? echo $datetime ?>">删除</a>//留言删除的语句(以客户留言时间$datetime作为删除标识) 
<br> 
<? 
} 
}//循环结束符 
}} 
if($id==0){ echo "<center>没有找到与关键字匹配的留言!</center>";}//如果$id=0则表示没找到匹配,显示相关提示

相关推荐:

PHP文本数据库的搜索方法

以上是PHP对文本数据库的操作方法有哪些?PHP对文本数据库操作的五种方法的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
在Laravel中使用Flash会话数据在Laravel中使用Flash会话数据Mar 12, 2025 pm 05:08 PM

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

php中的卷曲:如何在REST API中使用PHP卷曲扩展php中的卷曲:如何在REST API中使用PHP卷曲扩展Mar 14, 2025 am 11:42 AM

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

PHP记录:PHP日志分析的最佳实践PHP记录:PHP日志分析的最佳实践Mar 10, 2025 pm 02:32 PM

PHP日志记录对于监视和调试Web应用程序以及捕获关键事件,错误和运行时行为至关重要。它为系统性能提供了宝贵的见解,有助于识别问题并支持更快的故障排除

简化的HTTP响应在Laravel测试中模拟了简化的HTTP响应在Laravel测试中模拟了Mar 12, 2025 pm 05:09 PM

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

在Codecanyon上的12个最佳PHP聊天脚本在Codecanyon上的12个最佳PHP聊天脚本Mar 13, 2025 pm 12:08 PM

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

解释PHP中晚期静态结合的概念。解释PHP中晚期静态结合的概念。Mar 21, 2025 pm 01:33 PM

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

自定义/扩展框架:如何添加自定义功能。自定义/扩展框架:如何添加自定义功能。Mar 28, 2025 pm 05:12 PM

本文讨论了将自定义功能添加到框架上,专注于理解体系结构,识别扩展点以及集成和调试的最佳实践。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。