C は、固定データ構造を保存するのに非常に便利です。
struct USERINFO
{
int ID;
char USERNAME[10]
char PASSWORD[15] ;
char
}typedef USERINFO
UserInfo; UserInfo,sizeof(
UserInfo)); UserInfo.ID = 1; strcat
(UserInfo.USERNAME, "wan_dou");
strcat(UserInfo.PASSWORD,"password");
strcat(UserInfo.MAIL,") wan_dou@citiz.net"); FILE *fp
= fopen("c:/
x.txt","w"); fwrite(&UserInfo,sizeof(
UserInfo),1,fp); fclose(fp) );
はユーザーの情報を保存します。変数または配列の入力が、それに与えられた入力より小さい場合、自動的に空白が埋められるため、
fread( &UserInfo,sizeof(
UserInfo),1,fp); ですが、PHP
のようです に がない STRUCT はサポートされており、同じ操作を使用する CLASS は間違っているはずです。 したがって、構造を自分でシミュレートすることしかできません。
以下は未熟な構造ですが、最も厄介なのは、可変長データをサポートできないことです。
<define("UserInfoPath","data/UserInfo");
class USERINFO
{
var $
UserInfoStruct
= Array
(
"UserName" => 10 ,//構造を定義します
"PassWord" => 15 ,//if
int , float,double データベース内の定義を参照することも、自分で設定することもできます "Mail" => 50, //50: 文字必要な長さ、MAIL
は構造名 ); var $UserName; //
実際に内容を格納する変数はここにあります。 var $PassWord;//
var $Mail;//、必須構造体定義と同じ記述。
function checkValue($str,$n)//変数と指定された可変長変数
{
while(strlen($str)<$n)//補足
{
$ str.=' ';
if(
strlen($str) > $n)/ /さらに返す $
str = substr($str,0,$n); } 関数
SaveToFile
($filename)//
ファイルとして保存 { $fp
=
fopen($ファイル名,"w");//open for(reset($this->UserInfoStruct);$
i=key($this->gt;UserInfoStruct);next($this->gt;UserInfoStruct)) { $this->checkValue
(&$this->gt;$
i,$this->UserInfoStruct[$i]);//関数を呼び出すと、チェックされた変数はポインター アドレスを提供します echo $this->$i ;/ /
デバッグ用に自分で置いたものなので、削除しても構いません。 fputs($
fp,$this->$i,$this->UserInfoStruct[$i]);//write $this->$i は A $this->UserName などのフェーズ変数を参照する変数。3 番目のパラメーターは省略できますが、 を追加 指定した長さの変数を保存します。 ; } fclose
($
fp
);//閉じる } 関数 LoadFromFile($filename)//
ファイルからの読み取り { $ fp =
fopen
($ファイル名,"r");//open for(reset($ this- >UserInfoStruct);$i
=key($this->gt;UserInfoStruct);next($this->gt;UserInfoStruct )) { $this->$i =
fgets
($fp,$this-> UserInfoStruct[$i]);//指定された長さの文字を変数に読み込みます echo $this->$i;//
自分でデバッグしてください } fclose($fp);//close
}
};
/*
$UserInfo = new USERINFO;//写
$UserInfo -> ユーザー名 ="wan_dou";
$ユーザー情報 -> パスワード="1981627";
$ユーザー情報 ->メール ="wan_dou@sina.com.cn";
$ユーザー情報 -> ファイルに保存("c:/1.txt");
$UserInfoLoad = 新しい USERINFO;//read
$UserInfoLoad-> LoadFromFile("c:/1.txt");
echo $UserInfoLoad->ユーザー名;
*/
?>