Pengendalian fail PHP

PHP mempunyai pelbagai fungsi untuk mencipta, membaca, memuat naik dan mengedit fail.

Perhatian: Sila kendalikan fail dengan berhati-hati!

Anda mesti berhati-hati apabila memanipulasi fail. Jika anda melakukannya dengan tidak betul, anda boleh menyebabkan kerosakan yang sangat serius.

Kesilapan biasa ialah:

1. Mengedit fail yang salah

2. Mengisi cakera keras dengan data sampah

3. Pemadaman kandungan fail secara tidak sengaja


fungsi fail baca() PHP

fail baca($nama fail)

Fungsi: Lulus laluan fail dan keluarkan fail


Sebagai contoh, terdapat fail bernama file.txt dengan kandungan berikut:

Selamat datang dalam PHP pembelajaran bahasa Cina PHP

Gunakan kod PHP untuk fungsi readfile() untuk membaca fail ini dan menulisnya ke aliran output adalah seperti berikut (jika bacaan berjaya, fungsi readfile() mengembalikan bilangan bait):

Bilangan bait: Bahasa Inggeris Menduduki satu bait, gbk yang dikodkan Cina menduduki 2 utf-8 Bahasa Cina menduduki 3 bait, ruang dan simbol menyumbang 1

<?php
echo readfile("D:WWW/item/file.txt");
?>

Hasil operasi program:

Selamat datang dalam PHP pembelajaran bahasa Cina PHP39


file_get_contentsBuka fail

di atas Hanya buka fail dan ia akan dikeluarkan secara langsung Adakah terdapat sebarang kaedah operasi yang boleh diberikan kepada pembolehubah selepas membuka fail?

PHP pasti menyediakan kaedah ini. Kaedah ini adalah salah satu cara PHP membuka fail dan mengembalikan kandungan Mari kita lihat fungsi:


file_get_contents ( nama fail rentetan)

Fungsi: Masukkan laluan fail atau fail, buka fail dan kembalikan kandungan fail. Kandungan fail ialah rentetan.

Sebagai contoh, terdapat fail file.txt dengan kandungan berikut:

Saya menggunakan file_get_contents open

Gunakan file_get_contents untuk membuka

<?php
$fileName="file.txt";
$filestring = file_get_contents($fileName);
echo $filestring;
?>

Hasil berjalan program:

Saya menggunakan file_get_contents open


fopen, fread, fclose operasi membaca fail

fopen ($nama fail, mod)

fread ($sumber operasi, panjang baca)

fclose ($sumber operasi)

Melalui fungsi di atas, kami akan menerangkan kaedah operasi biasa jenis sumber:

1. Buka sumber

2. Gunakan fungsi yang berkaitan untuk beroperasi

3. >Fungsi fungsi fopen adalah untuk membuka fail Terdapat dua parameter utama:

1 Laluan untuk membuka fail 2 Jenis sumber memerlukan fungsi lain mengendalikan sumber ini. Semua sumber mesti ditutup apabila ia dibuka.


Fread

fungsi Fungsi fungsi adalah untuk membaca sumber fail terbuka. Baca sumber fail dengan panjang yang ditentukan, baca sebahagian daripadanya dan gerakkan sebahagian ke belakang. ke hujung fail.

fcloseFungsi Fungsi fungsi fclose adalah untuk menutup sumber. Sumber dibuka dan ditutup.

mod fopen (jadual di bawah):

Mod

 r+Baca/Tulis. Mulakan pada permulaan fail.   w

 w+

Penerangan r Baca sahaja. Mulakan pada permulaan fail.
Tulis sahaja. Membuka dan mengosongkan kandungan fail jika fail itu tidak wujud, mencipta fail baharu.


 
Baca/Tulis. Membuka dan mengosongkan kandungan fail jika fail itu tidak wujud, mencipta fail baharu.

     

  a

追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
  a+读/追加。通过向文件末尾写内容,来保持文件内容。

   

  x

只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

  

  x+

读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。
  twindows下将n转为rn
     b二进制打开模式
<🎜> a<🎜><🎜><🎜> dilampirkan. Membuka dan menulis ke hujung fail, atau mencipta fail baharu jika ia tidak wujud. <🎜><🎜>
 a+<🎜> Baca/Tambah. Kekalkan kandungan fail dengan menulis ke hujung fail. <🎜><🎜>
<🎜> < 🎜><🎜> x<🎜><🎜>Sahaja tulis. Buat fail baharu. Jika fail sudah wujud, mengembalikan FALSE dan ralat. <🎜><🎜>
<🎜> < 🎜><🎜> x+<🎜><🎜>Baca /Tulis. Buat fail baharu. Jika fail sudah wujud, mengembalikan FALSE dan ralat. <🎜><🎜>
 t<🎜> Tukar n kepada rn di bawah tingkap<🎜><🎜> < 🎜><🎜><🎜> b<🎜><🎜>Mod buka binari<🎜><🎜><🎜><🎜 >

1 Buka fail

file.txt Kandungan fail file.txt adalah seperti berikut

Anda dialu-alukan

<?php
//你可以创建一个file.txt,以只读模式打开
$fp = fopen('file.txt', "r");
//var_dump()操作一下$fp看看效果,输出的是不是只有类型提示的是resource
var_dump($fp);
?>

2. Baca fail

<?php
$fp = fopen('file.txt', "r");
//打开一个文件类型后,读取12个字节
$contents = fread($fp, 12);
?>

3. Tutup fail

<?php
$fp = fopen('file.txt', 'r');
$contents = fread($fp, 1024);
fclose($fp);
echo $contents;
?>

Hasil berjalan program :

Anda dialu-alukan


fail_put_kandungan dan fwrite tulis fail

fail_put_kandungan ( rentetan $laluan fail, rentetan $tulis data])

Fungsi: Tulis pada fail yang ditentukan Rentetan untuk mencipta fail jika ia tidak wujud. Mengembalikan panjang bait bertulis


instance

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$data = "我是一个兵,来自老百姓";
$numbytes = file_put_contents('binggege.txt', $data);
if($numbytes){
    echo '写入成功,我们读取看看结果试试:';
    echo file_get_contents('binggege.txt');
}else{
    echo '写入失败或者没有权限,注意检查';
}
?>

Hasil larian program:

Penulisan berjaya, mari kita baca dan lihat hasilnya: Saya askar, dari rakyat jelata


fwrite ( sumber pembolehubah sumber $fail, rentetan $rentetan bertulis[, panjang int ])

Nota: Fungsi alias fwrite ialah fputs

Kami mencuba mod r di atas, tetapi ia hanya digunakan semasa membaca Seterusnya, kami menggunakan fwrite untuk menambah Use w in fopen untuk menulis fail dalam mod tulis

contoh

Anda boleh cuba mencipta fail test.txt baharu dan menulis kandungan ke dalamnya. Kemudian, anda boleh cuba memadam test.txt. Lihat apa petua yang ada.

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$filename = 'test.txt';
$fp= fopen($filename, "w");
$len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
fclose($fp);
print $len ."字节被写入了\n";
?>

Hasil pelaksanaan program:

66 bait telah ditulis

Ringkasan:
1. Sama ada ada fail baharu atau tidak, fail tersebut akan dibuka dan ditulis semula
2. Fail asal kandungan akan Ditimpa
3. Jika fail tidak wujud, ia akan dibuat


Bandingkan perbezaan antara mod berikut:

  模式  说明
  r只能读不能使用fwrite写
  r+可操作读、写
  w只可以写功能
  w+

即可读又可以写


Instance

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$filename = 'test.txt';
$fp= fopen($filename, "r");
$len = fwrite($fp, '我是一只来自南方的狼,一直在寻找心中的花姑娘');
fclose($fp);
print $len .'字节被写入了\n';
?>

Hasil berjalan program:

0 bait ditulis Selepas memasuki n

kami mendapati bahawa menulis dengan r sahaja tidak berjaya


Mencipta fail sementara

Fail yang kami buat sebelum ini ialah fail kekal.

Mencipta fail sementara juga sangat berguna dalam pembangunan projek harian kami. Beberapa faedah mencipta fail sementara

1 Padamkannya selepas digunakan

2. Tidak perlu mengekalkan status pemadaman fail ini

Contohnya: Saya perlu padamkan A Pindahkan kandungan fail ke B, dan pindahkan kandungan fail B ke C.

Sama seperti dalam kehidupan sebenar, saya boleh mula-mula menggunakan botol sementara untuk mengisi air B, dan kemudian menulis data A ke dalam B. Masukkan air dari botol sementara ke C.

Mari kita pelajari fungsi ini:

sumber tmpfile ( )

Fungsi: Buat fail sementara dan kembalikan jenis sumber. Fail dipadamkan apabila ia ditutup.

Instance

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$handle = tmpfile();
//向里面写入了数据
$numbytes = fwrite($handle, '写入临时文件的内容');
//关闭临时文件,文件即被删除
fclose($handle);
echo  '向临时文件中写入了'.$numbytes . '个字节';
?>

Hasil menjalankan program:

Tulis ke fail sementara yang Dimasukkan 27 bait


Alih, salin, padam fail

Namakan semula fail

namakan semula($nama lama,$nama baharu);

Fungsi ini mengembalikan nilai bool dan menukar nama lama kepada nama baharu.

Contoh

<?php
$fileName1="text.txt";
$fileName2="text--1.txt";
rename($fileName1,$fileName2);
?>

Contoh di atas ialah menamakan semula fail text.txt kepada text--1.txt Anda juga boleh boleh cuba


salin fail

salin( Fail sumber , fail sasaran)

Fungsi: Salin fail sumber dengan laluan yang ditentukan ke lokasi fail sasaran.

Contoh

<?php
$filename = 'file.txt';  //旧文件名
$filename2 = 'copy-file.txt';  //新文件名
copy($filename, $filename2);    //修改名字。
?>

Contoh di atas ialah menamakan fail file.txt , salin fail bernama copy-file.txt dengan kandungan yang sama.


Padam fail

nyahpaut (fail dengan laluan yang ditentukan)

Contoh

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$filename = 'test.txt';
unlink($filename);
?>

Contoh di atas adalah untuk memadam fail bernama test.txt


Fungsi yang biasa digunakan dalam fail

saiz fail Kesan saiz fail

Contoh

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$filename = 'file.txt';
echo $filename . '文件大小为: ' . filesize($filename) . ' bytes';
?>

Hasil jalankan program:

saiz fail file.txt ialah : 14 bait

Fungsi lain untuk mengendalikan fail, membaca fail

< lebar jadual ="-642">
 
  函数名  功能
  file把整个文件读入一个数组中
  fgets从文件指针中读取一行,读到最后返回false
  fgetc从文件指针中读取一个字符,读到最后返回false
  ftruncate将文件截断到给定的长度
<🎜>Nama fungsi<🎜><🎜>
 <🎜><🎜>Fungsi<🎜><🎜>
Baca keseluruhan fail ke dalam tatasusunan
Baca baris dari penuding fail dan kembalikan palsu selepas membaca hingga akhir
 fgetcBaca aksara daripada penuding fail dan kembalikan palsu selepas membaca hingga akhir
 ftruncatePotong fail ke panjang yang diberikan


Kami menggunakan contoh untuk menggunakan semua fungsi di atas.

Kami menulis sekumpulan fail dalam fail text.txt:

abcdeefghijklk
opqrst
uvwxyz
12345678

fgetc membaca satu

<?php
//以增加的r模式打开
$fp = fopen('text.txt','r+');
//你分发现每次只读一个字符
echo  fgetc($fp) ."<br>";
//我要全部读取可以,读取一次将结果赋值一次给$string
while($string = fgetc($fp)){
    echo $string;
}
?>

Hasil berjalan program:


<🎜 a
bcdeefghijklk opqrst uvwxyz 12345678

fgets membuka satu baris pada satu masa:

rreee Keputusan:

abcdeefghijklk
opqrst
uvwxyz
12345678


<🎜 fungsi pintasan

<?php
//以增加的r模式打开
$fp = fopen('text.txt','r+');
//你分发现每次只读一个字符
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp);
?>

Jalankan atur cara dan buka fail text.txt untuk melihat sama ada terdapat 20 bait


Fungsi masa fail

< tr>

    函数   功能说明
    filectime  文件创建时间
    filemtime  文件修改时间
    fileatime  文件上次访问时间
Fungsi<🎜> <🎜>
<🎜><🎜> Penerangan Fungsi< 🎜><🎜>
filectime Masa penciptaan fail
masa filem Masa pengubahsuaian fail masa fail Failkan masa akses terakhir

Instance

<?php
//打开我们上面的text.txt文件
$file = fopen("text.txt", "a+");
//你可以数数20个字有多长,看看是不是达到效果了
echo ftruncate($file,10);
fclose($file);
?>

Hasil berjalan program:

Akses terakhir ke fail text.txt masa ialah: 13-09-2016 17:44:40
Masa penciptaan fail text.txt ialah: 13-09-2016 17:32:16
Masa pengubahsuaian fail text.txt ialah : 2016-09 -13 17:44:55


Fungsi pemprosesan direktori

Sebelum ini, semua yang kami proses adalah fail, direktori itu Bagaimana menangani folder

Mari kita pelajari fungsi yang berkaitan dengan pemprosesan direktori atau folder.

Idea asas memproses folder adalah seperti berikut:

1. Baca yang tertentu Apabila menentukan laluan, tentukan sama ada ia adalah folder

2 Jika ia adalah folder, buka folder yang ditentukan dan kembalikan pembolehubah sumber direktori fail

3 readdir untuk membaca fail dalam direktori sekali Penunjuk direktori dialihkan ke belakang sekali

4. Gunakan readdir untuk membaca hingga akhir, jika tiada fail yang boleh dibaca, kembalikan false

5. Tutup direktori fail

Mari belajar mengenainya Fungsi yang lebih biasa digunakan:


< tr>< td width="193" valign="top" style="border-width: 1px; border-style: solid; word-break: break-all ;">readdir
      函数名       功能
  opendir打开文件夹,返回操作资源
  readdir读取文件夹资源
  is_dir判断是否是文件夹
  closedir关闭文件夹操作资源
<🎜> Nama fungsi<🎜>< 🎜>
<🎜><🎜> Fungsi <🎜><🎜>
opendirBuka folder dan kembali ke sumber operasi
Baca sumber folder
 is_dirTentukan sama ada ia adalah folder
 closedirTutup sumber operasi folder
  filetype显示是文件夹还是文件,文件显示file,文件夹显示dir


Instance

<?php
header("Content-type:text/html;charset=utf-8");    //设置编码
$filename = 'text.txt';

if (file_exists($filename)) {
    echo "$filename"."文件的上次访问时间是: " . date("Y-m-d H:i:s", fileatime($filename))."<br>";

    echo "$filename"."文件的创建时间是: " . date("Y-m-d H:i:s", filectime($filename))."<br>";

    echo "$filename"."文件的修改时间是: " . date("Y-m-d H:i:s", filemtime($filename));
}

?>

Anda boleh lari program untuk melihat sama ada ia adalah direktori pemacu D komputer anda


Tentukan jenis fail

<?php
//设置打开的目录是D盘
$dir = "D:/";
//判断是否是文件夹,是文件夹
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        //读取一次向后移动一次文件夹指针
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        echo readdir($dh).'<br />';
        //读取到最后返回false
        //关闭文件夹资源
        closedir($dh);
    }
}
?>

Jalankan program dan lihat


Fungsi laluan fail

Kami sering menghadapi keadaan laluan fail pemprosesan.

Contohnya:

1. Akhiran fail perlu dikeluarkan

2 keluar nama tetapi bukan direktori

3 Anda hanya perlu mengeluarkan laluan direktori dalam nama laluan

4 Atau menghuraikan setiap bahagian URL untuk mendapatkan nilai bebas

5. Atau pun bentuk URL sendiri Keluar

Anda perlu menggunakan fungsi kelas pemprosesan laluan di banyak tempat.

Kami telah menandakan fungsi pemprosesan laluan yang biasa digunakan untuk semua orang Anda hanya boleh memproses fungsi pemprosesan laluan ini:

.
     函数名      功能
 pathinfo返回文件的各个组成部份
 basename返回文件名
    dirname文件目录部份
    parse_url 网址拆解成各部份
<🎜> Nama fungsi< 🎜><🎜 >
<🎜>< 🎜> Fungsi< 🎜><🎜>
pathinfobasename Kembalikan nama fail
dirnameBahagian direktori fail
parse_url Pecahkan URL kepada pelbagai bahagian
   http_build_query生成url 中的query字符串
   http_build_url生成一个url

pathinfo

pathinfo (string $path)
Fungsi: Lulus dalam laluan fail dan kembalikan setiap Komponen fail

Instance

<?php
//设置打开的目录是D盘
$dir = "D:/";
//判断是否是文件夹,是文件夹
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        //读取到最后返回false,停止循环
        while (($file = readdir($dh)) !== false) {
            echo "文件名为: $file : 文件的类型是: " . filetype($dir . $file) . "<br />";
        }
        closedir($dh);
    }
}
?>

Hasil pelaksanaan program:

Nama direktori fail: D:/www
Nama fail penuh: a.html
Sambungan fail: html
Nama fail tanpa sambungan: a


nama asas

nama asas ( string $path[, string $suffix])
Fungsi: Lulus dalam laluan dan kembalikan nama fail
Parameter pertama lulus dalam laluan.
Parameter kedua menyatakan bahawa nama fail saya akan berhenti apabila ia mencapai aksara yang ditentukan.

Instance

<?php
header("Content-type:text/html;charset=utf-8");
$path_parts = pathinfo('D:/www/a.html');
echo '文件目录名:'.$path_parts['dirname']."<br />";
echo '文件全名:'.$path_parts['basename']."<br />";
echo '文件扩展名:'.$path_parts['extension']."<br />";
echo '不包含扩展的文件名:'.$path_parts['filename']."<br />";
?>

Hasil pelaksanaan program:

1: a.html
2: sertakan
3: text.txt


dirname

dirname(rentetan $path )
Fungsi: Kembalikan bahagian direktori fail pada laluan fail

Instance

<?php
echo "1: ".basename("d:/www/a.html", ".d")."<br>";
echo "2: ".basename("d:/www/include")."<br>";
echo "3: ".basename("d:/www/text.txt")."<br>";
?>

Jalankan program anda


parse_url

parse_url (rentetan $path)
Fungsi : Pisahkan URL kepada pelbagai bahagian

Instance

<?php
$a=dirname(__FILE__);
echo$a;
?>

Hasil pelaksanaan program:

tatasusunan (8) {
["skema"]=>
rentetan(4) "http"
["hos"]=>
rentetan(8) "nama hos"
[ "port" ]=>
int(9090)
["pengguna"]=>
rentetan(8) "nama pengguna"
["lulus"]=>
rentetan (8) "kata laluan"
["path"]=>
string(5) "/path"
["query"]=>
string(9) "arg=value "
["fragment"]=>
rentetan(6) "anchor"
}


http_build_query

http_build_query (campuran $data untuk diproses)
Fungsi: Menjana rentetan pertanyaan dalam url

Instance

<?php
$url = 'http://username:password@hostname:9090/path?arg=value#anchor';
var_dump(parse_url($url));
?>

Hasil berjalan program:

nama pengguna= liwenkai&area=hubei&pwd=123


Manual Rujukan Sistem Fail PHP

Untuk manual rujukan lengkap fungsi sistem fail PHP, sila lawati Manual Rujukan Sistem Fail PHP kami.


Meneruskan pembelajaran
||
<?php header("Content-type:text/html;charset=utf-8"); $data = "我是一个兵,来自老百姓"; $numbytes = file_put_contents('binggege.txt', $data); if($numbytes){ echo '写入成功,我们读取看看结果试试:'; echo file_get_contents('binggege.txt'); }else{ echo '写入失败或者没有权限,注意检查'; } ?>
  • Cadangan kursus
  • Muat turun perisian kursus