ホームページ  >  記事  >  バックエンド開発  >  データ処理のためのテキストの使用_PHP チュートリアル

データ処理のためのテキストの使用_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:07:21737ブラウズ

著者: redfox 電子メール: ask4more@163.net
ホームページ: http://netnote.oso.com.cn

オンラインで無料の PHP スペースを申請する人は、ジュニア ユーザーであれば、通常、MySQL を持っていないと思います。を使用する場合、データ処理を解決する方法の 1 つはテキスト ファイルを使用することです。しかし、テキスト データを処理する最も速くて便利な方法は何でしょうか?
私の経験に基づいて、次のファイル構造が最適だと思います:
-------------------------------- -- -----------------------------------
ファイル拡張子: .php

email=ask4more@13.net & Nickname=redfox & realname=A Ding& url=http://NetNote.oso.com.cn & ...
...
---- -------------------------------------- ----- ----------------
拡張子が .php で、ファイルの最初の行が すべての変数の提案は非常に簡単で、関数 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){
if(file_exists($f)) {
trueを返す; return true; list ($key,$val)=each($fields)){
$therow.="$val=$".$val."&"; ".$val.",";
}
$var1.='$tail';
eval("global $var1;"); //環境変数を取得するため
eval("$therow="$therow ";");
$fp=fopen( $this->$dbfile,"a");
fclose($fp); f){
if(file_exists($f) ; =$rows[$i];
}
return $temp;
}
}
//すべてのデータ行を逆順に読み取ります
function revread($f){
if(file_exists($f)){ -$ This-& gt; $ dbfile = $ f;
$ d = カウント ($ 行); ;
for ($ i = 0; $; $; $; $; $; $; $; i if($i $temprow=$rows[$ i];
$rows[$i]=$rows[$j];
$rows[$ j]=$temprow;
関数 p2row($t){
$t=nl2br (stripslashes(htmlspecialchars($t)));
for($i=0;$i $c= substr($t,$i,1); ord($c)==10) $c=" ";
$tempstr.=$c
}
$tempstr;
?>
—————————————————————————————————————————— —————————

db はこの記事用にカスタマイズされたデータ オブジェクトで、createdb()、opendb()、insertline()、readall().revread()、close() の 6 つのメソッドが含まれます。
db->createdb(string filename)
使用例: $mydb=new db;
$mydb->createdb("UserInfo.php"); ?>
このメソッドは UserInfo.php を作成します。最初の行は < die('ACCESS DENIED!');?>

db->opendb(string filename)
使用例: include("textfun.inc"); mydb->opendb("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; $mydb- >opendb("UserInfo.php"); $mydb->insertline("") 文字列「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------------
私の遺言本


<フォーム名=form1 アクション=>
ニックネーム:<入力タイプ=テキスト名=ニックネーム>

電子メール:

ホームページ:

メッセージ:<テキストエリア名=メッセージcols=30行=12>


<入力タイプ=送信名=送信値=提交>


include("textfun.inc");
if($Submit){
$thetime=date("Y-m-d h:m:s A");
$message=p2row($message);
$mydb=新しいデータベース;
$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下调试通过!

http://www.bkjia.com/PHPjc/315137.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/315137.html技術記事作者:redfox 邮件:ask4more@163.net 主页:http://netnote.oso.com.cn 相信大家在网上申请的免费PHP空间,如果是初级用户,一般都是不得MySQL可提供使用...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。