国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

用PHP模擬C的數(shù)據(jù)結(jié)構(gòu)

2024-05-04 23:02:06
字體:
供稿:網(wǎng)友

 

c中對與一個固定的數(shù)據(jù)結(jié)構(gòu)存儲很方便。
struct userinfo
{
int id;
char username[10];
char password[15];
char mail[10];
}typedef userinfo;
userinfo userinfo;
zeromemory(&userinfo,sizeof(userinfo));
userinfo.id = 1;
strcat(userinfo.username,"wan_dou");
strcat(userinfo.password,"password");
strcat(userinfo.mail,"[email protected]");
file *fp = fopen("c:/x.txt","w");
fwrite(&userinfo,sizeof(userinfo),1,fp);
fclose(fp);
就將保存一個用戶的信息。如果一個變量或數(shù)組的輸入低于給他的輸入就自動補空,所以取出更方便
fread(&userinfo,sizeof(userinfo),1,fp);
php好象沒有struct的支持,而class用相同的操作的話一定是錯誤的。
所以只有自己來模擬一個結(jié)構(gòu)了。
下面就是一個不太成熟的結(jié)構(gòu)了,最討厭的就是不能支持變動長度的數(shù)據(jù)。

<?
define("userinfopath","data/userinfo");

class userinfo
{
var $userinfostruct = array
(
"username" => 10 ,//
定義結(jié)構(gòu)
"password" => 15 ,//
如果是 int ,float,double 可以參考數(shù)據(jù)庫中的定義或自行設定
"mail" => 50 ,//50:
字符需要的長度,mail是結(jié)構(gòu)名稱
);
var $username;//
真正存放內(nèi)容的變量在這里。
var $password;//
var $mail;//
,必須和結(jié)構(gòu)定義的描述相同。

function checkvalue($str,$n)//
給定一個變量,和規(guī)定變量長度變量
{
while(strlen($str)<$n)//
少補
{
$str.=' ';
}
if( strlen($str) > $n)//
多退
$str = substr($str,0,$n);

}
function savetofile($filename)//
保存為一個文件
{
$fp = fopen($filename,"w");//
打開
for(reset($this->userinfostruct);$i=key($this->userinfostruct);next($this->userinfostruct))
{
$this->checkvalue(&$this->$i,$this->userinfostruct[$i]);//
調(diào)用函數(shù),被檢查變量提供指針地址
echo $this->$i;//
我自己放的調(diào)試,可刪除。
fputs($fp,$this->$i,$this->userinfostruct[$i]);//
寫入 $this->$i是一個指相變量的變量,如 $this->username,第三個參數(shù)可省,但如果加更可靠的保存指定長度的變量。;

}
fclose($fp);//
關(guān)閉
}
function loadfromfile($filename)//
從一個文件中讀取
{
$fp = fopen($filename,"r");//
打開
for(reset($this->userinfostruct);$i=key($this->userinfostruct);next($this->userinfostruct))
{
$this->$i = fgets($fp,$this->userinfostruct[$i]);//
讀出指定長度的字符到變量
echo $this->$i;//
自己調(diào)試
}
fclose($fp);//
關(guān)閉
}

};
/*
$userinfo = new userinfo;//

$userinfo -> username ="wan_dou";
$userinfo -> password ="1981627";
$userinfo -> mail ="[email protected]";
$userinfo -> savetofile("c:/1.txt");

$userinfoload = new userinfo;//

$userinfoload->loadfromfile("c:/1.txt");
echo $userinfoload->username;
*/
?>


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 三门县| 隆德县| 嘉义县| 雅安市| 高邑县| 禹州市| 迭部县| 仪征市| 福泉市| 疏附县| 乌鲁木齐县| 伊川县| 蒙城县| 台湾省| 延津县| 佛学| 嵩明县| 武鸣县| 抚松县| 三穗县| 嘉荫县| 紫阳县| 桂平市| 女性| 海阳市| 赤壁市| 威远县| 雷波县| 神木县| 宁晋县| 南投市| 泸西县| 乐至县| 金乡县| 汶川县| 怀宁县| 固始县| 合山市| 静安区| 马山县| 康平县|