您的位置:首页 > 编程语言 > PHP开发

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

2012-04-02 17:23 561 查看
环境为 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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: