溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

php中怎么將數(shù)組數(shù)據(jù)存入文件

發(fā)布時(shí)間:2021-08-31 09:39:29 來(lái)源:億速云 閱讀:167 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹php中怎么將數(shù)組數(shù)據(jù)存入文件,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

方法1:利用var_export()函數(shù)

var_export — 輸出或返回變量的可解析字符串表示

語(yǔ)法:var_export(mixed $value, bool $return = false)

  • value:想要輸出的變量名。

  • return:此參數(shù)為 true 時(shí),var_export() 將返回一個(gè)變量,而不是輸出它。

此函數(shù)返回關(guān)于傳遞給該函數(shù)的變量的結(jié)構(gòu)信息,它和 var_dump() 類(lèi)似,不同的是其返回的表示是合法的 PHP 代碼。我們可以通過(guò)將函數(shù)的第二個(gè)參數(shù)設(shè)置為 TRUE,從而返回變量的表示。

我們通過(guò)下面示例來(lái)看看利用var_export()函數(shù)怎么將數(shù)組數(shù)據(jù)存入文件

<?php
//$cache的值是更新緩存時(shí)從數(shù)據(jù)庫(kù)中取出來(lái)的
$cache = array(
    'id'            =>  2,
    'name'          =>  '李娜', 
    'age'           =>  23,
    'sex'           =>  '女',
    'college'       =>  "軟件技術(shù)",
    'subject'       =>  "PHP編程"
); 

//將數(shù)據(jù)寫(xiě)入緩存文件
$content = "<?php\nreturn ".var_export($cache,true)."\n?>";    //這里使用var_export()
file_put_contents('./cache.php', $content);
?>

分析代碼:

  • 利用var_export($cache,true)返回?cái)?shù)組變量的可解析字符串

  • $content = "<?php\nreturn ".var_export($cache,true)."\n?>"; 拼接字符串,并賦值給變量$content;

  • file_put_contents('./cache.php', $content)在cache.php文件中寫(xiě)入數(shù)據(jù)$content

    file_put_contents()函數(shù)可以把一個(gè)字符串寫(xiě)入文件中,具體可閱讀文章《php文件操作之如何清空文件重新添加數(shù)據(jù)》。

因此一開(kāi)始為空文件的cache.php中,現(xiàn)在的內(nèi)容為:

php中怎么將數(shù)組數(shù)據(jù)存入文件

調(diào)用緩存文件的時(shí)候只需要使用require()即可將緩存文件的內(nèi)容復(fù)制給一個(gè)變量,然后輸出這個(gè)數(shù)組變量即可:

<?php
$cache = require('./cache.php');
var_dump($cache);
?>

輸出結(jié)果為:

php中怎么將數(shù)組數(shù)據(jù)存入文件

方法2:利用serialize方法

使用 serialize 將數(shù)組序列化,存儲(chǔ)在文件中;調(diào)用時(shí),再使用 unserialize 還原。

我們通過(guò)下面示例來(lái)看看利用serialize()函數(shù)怎么將數(shù)組數(shù)據(jù)存入文件

<?php
$file='./cache.php'; 
$cache = array(
    'id'            =>  2,
    'name'          =>  '李娜', 
    'age'           =>  23,
    'sex'           =>  '女',
    'college'       =>  "軟件技術(shù)",
    'subject'       =>  "PHP編程"
); 
//緩存 
if(false!==fopen($file,'w+')){ 
  file_put_contents($file,serialize($cache));//寫(xiě)入緩存 
} 
?>

使用file_put_contents($file,serialize($cache))將序列化后的數(shù)組數(shù)據(jù)存儲(chǔ)在cache.php文件中。因此一開(kāi)始為空文件的cache.php中,現(xiàn)在的內(nèi)容為:

php中怎么將數(shù)組數(shù)據(jù)存入文件

讀出緩存的時(shí)候需要使用unserialize 還原cache.php里數(shù)據(jù)即可

<?php
//讀出緩存 
$file='./cache.php'; 
$handle=fopen($file,'r'); 
$cache=unserialize(fread($handle,filesize($file))); 
var_dump($cache);
?>

輸出結(jié)果為:

php中怎么將數(shù)組數(shù)據(jù)存入文件

以上是“php中怎么將數(shù)組數(shù)據(jù)存入文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI