PHP 分别使用文本文件、XML和sqlite 存取文本的实现

环境为 Apache 2.2 + PHP 5.4(启用sqlite3扩展)。

在第一个文本区中输入一些文本,提交后分别存储到文本文件、XML文件和 sqlite 数据库(不存在时将自动创建),然后再读出分别显示在三个文本区中,均可正确存取,相关读写函数运行正常,可用于生产。

<?php 
$DIR_ROOT=$_SERVER['DOCUMENT_ROOT']; 

error_reporting(-1); 


$CONF["DATATYPE"]="sqlite3"; 
$CONF["HOST"]=""; 
$CONF["DATABASE"]=$DIR_ROOT . "/database/sqlite.db"; 
$CONF["USER"]=""; 
$CONF["PWD"]=""; 

$db = new SQLite3($CONF["DATABASE"]); 


$cstr="create table if not exists mmm (id integer primary key,stext text,mtext text);"; 
$db->exec($cstr) or die("Error in query execution"); 


$text=$_POST['text']; 
if ($text!="") 
{ 

//1.文本 
// 1.1 存储 
file_put_contents("xxx.txt",$text); 
// 1.2 读出 
$var=file_get_contents("xxx.txt"); 

//2.XML 
// 2.1 存储 
$dom = new DomDocument('1.0','utf-8'); 
$textnode = $dom->createElement('text'); 
$dom->appendChild($textnode); 
$titlenode = $dom->createElement('title'); 
$textnode->appendChild($titlenode); 
$title = $dom->createTextNode($text); 
$titlenode->appendChild($title); 
file_put_contents("text.xml",$dom->saveXML()); 
// 2.2 读出 
$dom->Load("text.xml"); 
$textnode=$dom->getElementsByTagName("text")->item(0); 
$titlenode=$textnode->getElementsByTagName("title")->item(0); 
$mvar=$titlenode->nodeValue; 

//3.sqlite数据库 
// 3.1 清除旧数据 
$query="DELETE FROM mmm"; 
$db->exec($query); 
// 3.2 存储 
$query="INSERT INTO mmm (stext,mtext) VALUES ('" . addslashes($text) . "','" . addslashes($text) . "')"; 
$db->exec($query); 
// 3.3 读出 
$query="SELECT * FROM mmm limit 0,2"; 
$res=$db->query($query); 
$r = $res->fetchArray(); 
$svar=$r['stext']; 
} 
?> 
<FORM METHOD=POST ACTION=""> 
<TEXTAREA ROWS="6" COLS="40" name="text"><?php print($var);?></TEXTAREA> 
<TEXTAREA ROWS="6" COLS="40" name="stext"><?php print($mvar);?></TEXTAREA> 
<TEXTAREA ROWS="6" COLS="40" name="mtext"><?php print($svar);?></TEXTAREA> 
<BR><INPUT TYPE="submit"> 
</FORM>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值