ホームページ  >  記事  >  バックエンド開発  >  PHP_PHPチュートリアルでテキストファイルをデータベースとして利用する実装方法

PHP_PHPチュートリアルでテキストファイルをデータベースとして利用する実装方法

WBOY
WBOYオリジナル
2016-07-21 15:52:55682ブラウズ

私の経験に基づいて、次のファイル構造が最適だと思います:
--------------------------------- -- -----------------------------------
ファイル拡張子: .php

email=ask4more@13.net & Nickname=redfox & realname=A Ding & url=http://NetNote.oso.com.cn & ...
...
--- ---------------------------------------------- --- -----------------
拡張子が .php で、ファイルの最初の行が これにより、データ ファイルへの不正アクセスが効果的に防止されます。ファイルの 2 行目の形式は次のとおりです: 変数名 1 = 値 1 & 変数名 2 = 値 2 &...
すべての変数の提案は非常に簡単で、関数 parse_str() を使用するだけです
例:
< ;?
$theline="email=ask4more@13.net&nickname=redfox&realname=A Ding&url=http://NetNote.oso.com.cn";
parse_str($theline);//変数 $email,$nickname を区切ります,$ realname,$url
echo "私は $nickname、私の本名は $realname
";
echo "私のウェブサイトへようこそ:$url
"
echo "メールしてください:$email "; したがって、この記事は、データ テキスト構造が次のとおりであることに同意します。
------------------------------------- -----

変数名 1 = 値 1 & 変数名 2 = 値 2 & ...

ファイル拡張子: .php
--- --- ----------------------------------

2行目からが実際のデータです。このようなファイル構造を使用すると、GuestBook、BBS、さらにはコミュニティ データ処理さえも簡単に実装できます:) 私のホームページ「Netnote」 http://netnote.oso.com.cn はこの方法で実装されています。
大多数のネチズンを容易にするために、いくつかの機能をまとめました。必要な説明は以下で行います。もちろん、必要に応じて変更して実装できますが、機能の整合性を確保する必要があります。次のコードを textfun.inc という名前で保存し (もちろん他の名前も同じです)、ファイルの先頭に というステートメントを追加してください。私があなたのためにコンパイルした関数を使用できます。
以下に db オブジェクト、関数 p2row() があります

-------------textfun.inc----------------
<
クラス db{
関数 createdb($dbName){
$this->$dbfile=$f;アクセスが拒否されました !');?>n";
$fp=fopen($f,"w");
fputs($fp,$headInfo);
fclose($fp);
chmod($f,0777 ); //ファイル モードを変更します (Unix でも使用可能)
Return(1);
function opendb($f){
$this->$dbfile=$f;
if(file_exists($f)) {
return true;
while(list ($key,$val)=each($fields)){

}
$var1.='$tail'
eval("global $var1;");環境変数を取得するには
eval("$therow="$therow";");
$fp=fopen( $this->$dbfile,"a");
fputs($fp,"$thewn");
fclose($ fp); function readall($ f){file_exists($ f); = $ rows [$ i];
= $ rows [$ i&lt; $ d; $ i++){
if($i $temprow=$rows[$i];
$rows[$i]=$rows[$j];
$j--;
保存しやすいように 1 行のテキストとしてフォーマットされます
$t=nl2br(stripslashes(htmlspecialchars($t)));
for($i=0;$i<); ;strlen($t);$i++){
$c= substr($t,$i,1);
if(ord($c)==10) $c=" "; c;
}
$tempstr を返す
}
?>
---------------. 6 つのメソッドが含まれます: createdb()、opendb()、insertline()、readall().revread()、close();

db->createdb(string filename)
使用例: include ("textfun.inc");
$mydb->createdb("UserInfo.php");
?>
このメソッドは、ファイル UserInfo.php を作成します。最初の行は < die('ACCESS DENIED!');?>

db->opendb(string filename) です。 ?
include("textfun.inc");
$mydb->opendb("UserInfo.php");
このメソッドは、UserInfo.php を「開きます」追加モード。このファイルが存在しない場合は作成されます。
したがって、このメソッドは createdb() メソッドを置き換えることができます。 (ただし、クラス db{ } の createdb() 関数は削除しないでください :P)

db->insertline(string VarString)
使用例: include("textfun.inc");
$theline ="email=ask4more@13.net&nickname=redfox&realname=Ading&url=http://NetNote.oso.com.cn";
parse_str($theline);//環境変数を構築する
$mydb=new db- & gt; OpenDB ("userInfo.php"); $ mydb- & gt; 文字列 "nickname|realname|email|url" を区切ります。変数を取得し、この記事で合意された形式でファイルに保存します。 insertline() のパラメータを渡すときは、「|」を使用して環境変数名を文字列に接続する必要があります。ただし、先頭に「$」を追加しないでください。 "nickname|realname" |email|url" の形式 このような文字列 :~)

array db->readall(string filename)
使用例: include("textfun.inc");
$ mydb=new db;
$ allrec=$mydb->readall("UserInfo.php");
?>
readall() メソッドは最初の行 () 配列。各行は配列の要素に対応します。

array db->revread(string filename)
使用例: include("textfun.inc");
$allrec=$mydb->revread("UserInfo. php");
?>
revread() メソッドは、最初の行 () を除くすべてのデータを逆順に読み取り、配列を返します。これはゲストブックなどを書くときに特に便利です。

void db->close()
db オブジェクトを閉じます。

それでは、db オブジェクトを使用して最も単純なゲストブックをコンパイルします。 
---------guestbook.php------------
私の遺言本

 


ニックネーム:
 
電子メール:
 
ホームページ:
 
メッセージ:

 
 
 
 
include("textfun.inc"); 
if($Submit){
$thetime=date("Y-m-d h:m:s A"); 
$message=p2row($message); 
$mydb=新しい db; 
$mydb->opendb("msg.php"); 
$mydb->insertline("ニックネーム|メール|URL|メッセージ|時刻"); 

//以下にすべてのデータを示します
$allrecs=$mydb->revread("msg.php"); 
while(list($key,$theline)=each($allrecs)){
parse_str($theline); 
?> 
URL:
 
メッセージ:


 
 
}
$mydb->close(); 
}
?> 
-----------------------------
好了,虽然这个留言本不是很美观,但主是為了举例说明db对象的用法~:)
本文はWIN98+PWS+PHP4下调试通过!

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/318817.html技術記事按我的经验,本人認証,以下列文结构最优: ---------------------------------- ------------------------------------ 文件扩展名:.php ?die('ACCESSDENIED!'. ..
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。