PHP を使用して C データ構造をシミュレートする

WBOY
リリース: 2016-06-21 09:02:37
オリジナル
1423 人が閲覧しました

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->ユーザー名;
*/
?>



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート