php數據寫入文件
A. php寫入數據到php文件第2行 以及更改第3行數據 會的來
下面是完整的代碼:
//根據你的PHP設置自已可以把<?php替換為<?
<?php
//要更改的php文件
$filename = 'id.php';
//要插入的內容
$addContent = "wole\n";
//要更改的內容
$updateContent="qwe\n";
// 確定文件存在並且可寫。
if (is_writable($filename)) {
// 將文件讀入數組,每行是一條記錄
$lines = file ($filename);
// 使用寫入方式打開打開$filename,文件指針將會在文件的開頭
if (!$handle = fopen($filename, 'w')) {
print "不能打開文件 $filename";
exit;
}
//在數組中循環,當到達第2行時插入新的內容。
foreach ($lines as $line_num => $line) {
if($line_num==1){
//將$addContent寫入到文件中。
if (!fwrite($handle, $addContent)) {
print "不能寫入到文件 $filename";
exit;
}
}
//寫入原來的行內容到文件中
if (!fwrite($handle, $line)) {
print "不能寫入到文件 $filename";
exit;
}
}
//更改數據第3行zxcv為qwe,把上面foreach注釋掉,打開下面注釋掉的代碼
// foreach ($lines as $line_num => $line) {
// if($line_num==2){
// //將$updateContent寫入到文件中。
// if (!fwrite($handle, $updateContent)) {
// print "不能寫入到文件 $filename";
// exit;
// }
// }
// else{
// //寫入原來的行內容到文件中
// if (!fwrite($handle, $line)) {
// print "不能寫入到文件 $filename";
// exit;
// }
// }
// }
fclose($handle);
} else {
print "文件 $filename 不可寫";
}
?>
B. PHP 寫入文件
和依次調用fopen(),fwrite()以及fclose()功能一樣,如果文件名不存在,則創建該文件。否則,現有文件將被覆蓋,除非設置了file_APPEND標志。 如果試圖將文件放入不存在的目錄中,則文件放置內容失敗 。
參數:
filename:要被寫入數據的文件名。
data:要寫入的數據。類型可以是string,array或者stream資源。如果data指定為stream資源,這里stream中所保存的緩存數據將被寫入到指定文件中,這種用法就相似於使用stream__to_stream()函數。data可以是數組( 但不能為多維數組 ),這就相當於file_put_contents($filename,join('',$array))。
flags:flags的值可以是以下flag使用OR(|)運算符進行的組合。
context:一個 context 資源。
返回值: 該函數將返回寫入到文件內數據的位元組數,失敗時返回 false
警告 :此函數可能返回布爾值 false ,但也可能返回等同於 false 的非布爾值。應使用 === 運算符的返回值。
fputcsv(resource $handle, array $fields, string $delimiter=',', string $enclosure='"'):int
fputcsv()將一行(用fields數組傳遞)格式化為CSV格式並寫入由handle指定的文件。
參數:
fwrite(resource $handle, string $string, int $length = ?):int
fwrite()把string的內容寫入文件指針handle處
參數:
不管使用「r+」還是「w」或「a」,只要沒有關閉資源,每次fwrite都不會覆蓋上次的。
C. PHP 中如何在同一個文件中寫入而不覆蓋以前寫的內容
<?php
$fp=fopen("a.txt","a");
fputs($fp,"123");
fclose($fp);
?>
D. file_put_contents說明
file_put_contents 是 PHP 中的一個函數,用於將一個字元串或數據寫入到文件中,其功能相當於依次調用 fopen, fwrite 和 fclose。以下是關於 file_put_contents 函數的詳細說明:
函數語法:
- int file_put_contents
參數說明:
- $filename:要寫入的文件路徑。
- $data:要寫入的字元串或數據。可以是字元串、數組或 stream 資源。如果為數組,將使用類似 join 函數的方式轉換為字元串。如果為 stream 資源,則將其緩存數據寫入到指定文件中。
- $flags:用於控制寫入行為的標志。例如,FILE_APPEND 用於在文件末尾追加數據,而不是覆蓋原有數據。
- $context:一個資源,用於指定文件句柄的上下文選項。
返回值:
- 函數返回寫入到文件中的數據位元組數。如果失敗,則返回 false。
使用示例:
- 寫入字元串到文件:phpfile_put_contents; 將數組轉換為字元串後寫入文件:php$my_array = ['Hello', ',', ' ', 'World', '!'];$file_content = implode;file_put_contents;
優點:
- 使用 file_put_contents 函數可以簡化文件操作的代碼,減少錯誤發生的可能性,因為它將文件打開、寫入和關閉三個步驟合並為一個步驟。
總之,file_put_contents 函數是 PHP 中一個非常實用的文件操作函數,能夠高效地將數據寫入文件。