Tutorial pembangunan PHP asas: Operasi fail PHP
1. Sistem fail
1 Kami akan klik kanan tetikus untuk memadam fail, control+c (atau klik kanan) untuk menyalin dan tampal fail dan buat fail baharu Untuk sesetengah fail, semak sama ada fail itu baca sahaja.
2. Alangkah baiknya jika operasi yang dilakukan pada komputer ini boleh dilakukan dalam kod.
3. Sebab, kalau ada operasi ni. Kita boleh melakukan banyak perkara:
Bolehkah saya menulis dan mengubah suai fail konfigurasi?
Adakah mungkin untuk mengesan kebenaran fail semasa memasang PHP?
Adakah mungkin untuk menjana fail Html dan banyak operasi lain
..... Operasi fail digunakan di terlalu banyak tempat lain.
4. Mempelajari pemprosesan fail pada asasnya mempelajari fungsi pemprosesan fail. Gabungkannya dengan kod yang anda tulis sebelum ini untuk meningkatkan keupayaan pemprosesan perniagaan anda.
2 Baca fail
1.readfile membaca fail
Jadi bagaimana untuk membaca fail? Mari belajar fungsi dahulu.
int readfile (rentetan $filename)
Fungsi: Lulus dalam laluan fail dan keluarkan fail.
Dalam kod di bawah, fail dibaca selagi nama fail atau laluan fail yang ditentukan dihantar masuk.
<?php //linux類的讀了方式 readfile("/home/paul/test.txt"); //windows類的讀取方式 readfile("c:\boot.ini"); ?>
Nota: Tanda miring Windows dalam kod di atas ialah garis miring dan beberapa aksara mungkin terlepas. Oleh itu, apabila kita menulis, kita menulis dua garis miring.
2.file_get_contents membuka fail
Di atas ialah output langsung selepas hanya membuka fail Adakah terdapat sebarang operasi yang boleh ditetapkan 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:
string file_get_contents (string nama fail)
?. >Fungsi: Lulus Masukkan fail atau laluan fail, buka fail dan kembalikan kandungan fail. Kandungan fail ialah rentetan.
<?php $filename = 'NoAlike.txt'; $filestring = file_get_contents($filename); echo $filestring; ?>Kod di atas membuka fail dan mengeluarkan kandungan fail. Mari kembangkan kod berdasarkan pengetahuan sebelumnya. Gunakan pengetahuan anda yang terdahulu.
<?php //假設(shè)我們有一個多行的文件叫NoAlike.txt,沒有的話你可以新建一個這個文件 $filename = 'NoAlike.txt'; //打開這個文件,將文件內(nèi)容賦值給$filestring $filestring = file_get_contents($filename); //因?yàn)槊恳恍杏幸粋€回車即\n,我用\n來把這個字符串切割成數(shù)組 $filearray = explode("\n", $filestring); //把切割成的數(shù)組,下標(biāo)賦值給$key,值賦值給$val,每次循環(huán)將$key加1。 while (list($key, $val) = each($filearray)) { ++$key; $val = trim($val); //用的單引號,單引號不解釋變量進(jìn)行了拼接而已 print 'Line' . $key .':'. $val.'<br />'; } ?>Di atas, kami telah menggabungkan ilmu yang telah kami pelajari sebelum ini.
3. Operasi fopen, fread, dan fclose membaca fail
Kaedah file_get_contents di atas untuk membuka fail adalah mudah dan kasar. Yang berikut- sumber fopen (rentetan $nama fail, mod rentetan)
- rentetan rentetan (sumber $operation resource, int read length)
- bool fclose ( resource $ operation resource)
- Sumber terbuka
- Gunakan fungsi berkaitan untuk beroperasi
- Tutup sumber
Fungsi fopen Fungsi fopen adalah untuk membuka fail Terdapat dua parameter utama:
l Laluan untuk membuka fail
<. ??>l Buka Mod fail jenis pulangan ialah jenis sumber Ini adalah kali pertama kami menemui jenis sumber yang disebut dalam jenis asas sebelumnya.Jenis sumber memerlukan fungsi lain untuk mengendalikan sumber ini. Semua sumber mesti ditutup apabila ia dibuka.
fungsi fread 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.
fungsi fclose Fungsi fungsi fclose ialah untuk menutup sumber. Sumber dibuka dan ditutup.
Selepas memahami fungsi, dua fungsi terakhir agak mudah. Apakah mod fungsi fopen? Mod fopen adalah seperti berikut. ??>Seterusnya, kita hanya akan mempelajari mod r Dalam pelajaran seterusnya, kita akan bercakap tentang mod lain semasa menulis.3. Kita mesti tahu cara membaca fail terlebih dahulu sebelum dapat menguasai penulisan fail dengan baik.
1 Buka fail
<?php //你可以創(chuàng)建一個NoAlike.txt,以只讀模式打開 $fp = fopen('NoAlike.txt', "r"); //var_dump()操作一下$fp看看效果,輸出的是不是只有類型提示的是resource var_dump($fp); ?>
2. Baca fail <?php
$fp = fopen('NoAlike.txt', "r");
//打開一個文件類型后,讀取長度
$contents = fread($fp, 1024);
?>
<?php
$fp = fopen($filename, 'r');
$contents = fread($fp, 1024);
fclose($fp);
echo $contents;
?>
Nota lain:
Contoh penggunaan:
<?php $fp = fopen($filename, 'ab'); $contents = fwrite($fp, '可愛的很\n喲'); fclose($fp); echo $contents; ?>
Penjelasan:
Windows menyediakan teg penukaran teks ('t') untuk menukar n kepada rn secara telus.
4. Cipta dan ubah suai kandungan fail
1.file_put_contents ditulis pada fail
Mari kita pelajari cara pertama untuk menulis fail: int file_put_contents (rentetan $fail laluan, rentetan $tulis data])
Fungsi : Tulis rentetan pada fail yang ditentukan, dan buat fail jika ia tidak wujud. Apa yang dikembalikan ialah panjang bait bertulis
<?php $data = "我是一個兵,來自老百姓"; $numbytes = file_put_contents('binggege.txt', $data); if($numbytes){ echo '寫入成功,我們讀取看看結(jié)果試試:'; echo file_get_contents('binggege.txt'); }else{ echo '寫入失敗或者沒有權(quán)限,注意檢查'; } ?>
Kami mendapati bahawa menulis fail agak mudah. Mengikut format fungsi ini, nyatakan fail dan tulis data rentetan.
2.fwrite bekerjasama dengan fopen untuk melaksanakan operasi penulisan
int fwrite ( sumber $ pembolehubah sumber fail, rentetan $ rentetan bertulis [, panjang int ])
Nota: Fungsi alias fwrite ialah fputs
Kami mencuba mod r dalam kelas terakhir, yang hanya digunakan semasa membaca Seterusnya, kami menggunakan fwrite plus w dalam fopen untuk menulis fail dalam mod tulis.
Mari kita lihat ciri-ciri:
Buka dalam mod penulisan, halakan penuding fail ke pengepala fail dan potong saiz fail kepada sifar. Jika fail itu tidak wujud maka cuba menciptanya.
Nota: Dalam percubaan berikut, 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 $filename = 'test.txt'; $fp= fopen($filename, "w"); $len = fwrite($fp, '我是一只來自南方的狼,一直在尋找心中的花姑娘'); fclose($fp); print $len .'字節(jié)被寫入了\n"; ?>
Ringkasan:
1. Sama ada terdapat fail baharu atau tidak, fail akan dibuka dan ditulis semula
2 >3. Fail Jika ia tidak wujud, ia akan dibuat
<?php $filename = 'test.txt'; $fp= fopen($filename, "r+"); $len = fwrite($fp, '我是一只來自南方的狼,一直在尋找心中的花姑娘'); fclose($fp); print $len .'字節(jié)被寫入了\n'; ?>Anda boleh mengalih keluar tanda + selepas r semasa bereksperimen. Melalui eksperimen, kami mendapati bahawa menggunakan mod r, data boleh ditulis apabila fail disimpan Jika hanya r digunakan, tulisan itu tidak berjaya.
3. Perbezaan antara mod dan mod w
Kod yang sama ada di bawah, kami menukarnya kepada mod.<?php $filename = 'test.txt'; $fp= fopen($filename, "a"); $len = fwrite($fp,'讀大學(xué)迷茫了,PHP學(xué)院PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?>Buka halaman web dan laksanakan kod ini, anda akan dapati: setiap kali anda memuat semula, akan ada perenggan tambahan dalam fail
Jika anda keliru di kolej, PHP Academy PHP memberi anda harapan.
Perbezaan antara mod 4.x dan mod w
Mari bereksperimen dengan kod ini sekali lagi, tukar kepada >Jika anda menukar $filename kepada nama fail lain, ia akan menjadi baik. Walau bagaimanapun, apabila saya menyegarkannya semula, ralat telah dilaporkanx+ ialah mod x dipertingkat. Boleh juga digunakan semasa membaca.
5 Fail yang kami buat sebelum ini adalah fail kekal.
Mencipta fail sementara juga sangat berguna dalam pembangunan projek harian kami. Beberapa faedah mencipta fail sementara:
1 Padamkannya selepas selesai menulis
2. Tidak perlu mengekalkan status pemadaman fail ini Contohnya: Saya perlu memindahkan kandungan fail A ke B dan memindahkan 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:resource tmpfile ( )
Fungsi: Buat fail sementara dan kembalikan jenis sumber. Fail dipadamkan apabila ia ditutup.
<?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'讀大學(xué)迷茫了,PHP學(xué)院PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?>
6. Alihkan, salin dan padam fail
1. $nama lama, $nama baharu);
Fungsi ini mengembalikan nilai bool untuk menukar nama lama kepada nama baharu.
<?php //創(chuàng)建了一個臨時(shí)文件 $handle = tmpfile(); //向里面寫入了數(shù)據(jù) $numbytes = fwrite($handle, '寫入臨時(shí)文件'); //關(guān)閉臨時(shí)文件,文件即被刪除 fclose($handle); echo '向臨時(shí)文件中寫入了'.$numbytes . '個字節(jié)'; ?>
Kami membuka direktori dan kami dapat melihat kesannya. Anda akan mendapati bahawa fail yang ditentukan disalin ke laluan sasaran.
2. Salin failMenyalin fail adalah bersamaan dengan teknologi pengklonan, mengklonkan perkara asal kepada perkara baharu. Kedua-duanya kelihatan sama.
salinan bool (fail sumber, fail sasaran)Fungsi: Salin fail sumber dengan laluan yang ditentukan ke lokasi fail sasaran.
Mari kita bermain dengannya melalui percubaan dan kod: <?php
//舊文件名
$filename = 'test.txt';
//新文件名
$filename2 = $filename . '.old';
//復(fù)制文件
rename($filename, $filename2);
?>
Ringkasan:
3. Padam fail
Memadamkan fail bermakna memadamkan fail dalam laluan yang ditentukan, tetapi pemadaman ini adalah pemadaman langsung. Jika anda menggunakan komputer Windows, anda tidak dapat melihat fail ini dalam Tong Kitar Semula. Anda hanya akan mendapati bahawa fail ini telah hilang.
bool nyahpaut (fail dengan laluan yang ditentukan)<?php //舊文件名 $filename = 'copy.txt'; //新文件名 $filename2 = $filename . '_new'; //修改名字。 copy($filename, $filename2); ?>
7 >
Sesetengah pelajar sangat ingin tahu tentang tempat pengesanan atribut fail digunakan. Mengesan atribut fail boleh digunakan di terlalu banyak tempat.
Mari berikan contoh: 1 Apabila kami memasang perisian, anda akan mendapati bahawa jika fail itu wujud, ia akan melompat ke tempat lain.
2. Jika sesetengah fail tidak mempunyai kebenaran menulis semasa proses pemasangan, pemasangan tidak akan dibenarkan. Mari ambil tangkapan skrin proses pemasangan discuz, perisian yang sangat terkenal di China:Contoh di atas ialah penggunaan pengesanan fail biasa.
Mari kita pelajari kumpulan fungsi berikut. Kemudian, mari belajar melalui contoh.
bool file_exists ($nyatakan nama fail atau laluan fail)
Fungsi: sama ada fail itu boleh dibaca
Fungsi: sama ada fail boleh ditulis
Fungsi: sama ada fail boleh laksana
Fungsi: sama ada ia fail
Fungsi: Sama ada ia adalah direktori
Fungsi: Kosongkan cache status fail
Fungsi di atas boleh dilihat sepintas lalu. Faham. Bagi eksperimen, mari tulis contoh yang kami berikan pada mulanya.
Mari kita bincangkan tentang contoh pertama, kunci fail. Jika ia telah dipasang, jika kunci pemasangan wujud, ia akan menggesa bahawa ia telah dipasang, jika tidak, pemasangan akan diteruskan.
Kami menganggap bahawa URL antara muka pemasangan ialah: install.php, dan fail kunci yang dipasang ialah install.lock. Kami boleh mengesan sama ada fail install.lock wujud.
<?php $filename = 'test.txt'; if (unlink($filename)) { echo "刪除文件成功 $filename!\n"; } else { echo "刪除 $filename 失敗!\n"; } ?>
Mari lakukan eksperimen pengesanan pemasangan fail untuk mengesan sama ada fail atau direktori mempunyai kebenaran menulis atau membaca. Jika tidak, pemasangan tidak boleh dilakukan.
Idea untuk mengendalikan perkara ini adalah seperti berikut:
1 Tentukan kumpulan tatasusunan yang perlu mengesan kebenaran
2 ialah folder atau fail
3 Buat pembolehubah bit set adalah palsu, langkah pemasangan seterusnya tidak akan dipaparkan
<?php if(file_exists('install.lock')){ echo '已安裝,請不要再次進(jìn)行安裝'; exit; } ?>
Melalui contoh di atas, kita telah melakukannya. Laksanakan pengesanan pemasangan semasa proses pemasangan perisian PHP tertentu.
Itulah realisasi idea kami di atas.
8 Fungsi dan pemalar biasa untuk fail
1 Pemalar berikut adalah yang paling biasa digunakan. Merupakan pemalar yang menjadi pembatas direktori fail.
Mari kita lihat format:
Format laluan tingkap ialah d:xxxxxx Nota: windows menyokong d:/xxx/xxx
jadi apabila anda mendayakan escape dan seumpamanya, d:xxxxxx adalah sama jika aksara escape digunakan bersama. Apabila menilai, terdapat dua Jika ada, tukarkannya menjadi satu, dan kemudian ganti / untuk memisahkan laluan, supaya laluan pada Linux atau Windows boleh kekal bersatu.
Kami akan menggunakan pemalar:
Mari tulis contoh kecil untuk menentukan laluan fail semasa:
Memandangkan FILE ialah pratetap Pemalar PHP ditakrifkan, jadi tiada cara untuk mengubahnya Jika perlu, FILE juga boleh menyesuaikan diri dengan sistem pengendalian.
Kemudian jangan gunakan FILE, anda boleh menggunakan pemalar tersuai dan proses FILE, seperti berikut:<?php //可以定義一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定義標(biāo)志位變量 $flag = true; foreach($files as $v){ echo $v; //判斷是文件還是文件夾 if(is_file($v)){ echo '是一個文件 '; }else if(is_dir($v)){ echo '是一個文件夾 '; } if(is_readable($v)){ echo ' 可讀'; }else{ echo '<font color="red">不可讀</font>'; } if(is_writeable($v)){ echo '可寫'; }else{ echo '<font color="red">不可寫</font>'; } echo '<br />'; } if($flag){ echo '<a href="step1">下一步</a>'; }else{ echo '不能進(jìn)行安裝'; } ?>
2. Fungsi operasi penunjuk fail
rewind ( resource handle)
Fungsi: Kembalikan penunjuk ke permulaan
fseek ( resource handle, int offset [, int from_where] )
Fungsi: Gerakkan penuding fail ke belakang mengikut aksara yang ditentukan
Dalam bacaan sebelumnya, kami mendapati bahawa fread membaca data dengan panjang yang ditentukan. Baca kandungan panjang yang ditentukan Pada kali seterusnya anda membacanya, mulakan dari kedudukan asal dan kemudian baca ke belakang.
Seperti yang ditunjukkan dalam gambar di atas, kita boleh bayangkan:
1 Apabila fail pertama kali dibuka, ikon merah dibaca
2 .Fail warna palsu dibaca dari A hingga C
3 Kami menulis sekumpulan fail dalam fail demo.txt:
- Abcdeefghijklk?. >
- Opqrst
- Uvwxyz
- 12345678
Kita boleh mulakan percubaan.
<?php $_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__); define('__CUR_FILE__', $_current_file); echo __CUR_FILE__; ?>
Dalam contoh di atas, anda akan mendapati bahawa fseek akan menggerakkan sebanyak bait sebagai panjang yang ditentukan. Dan gulung semula kembali ke permulaan fail setiap kali.
Bagaimana untuk bergerak ke penghujung? Kita boleh mengira bilangan bait. Bergerak terus ke belakang semasa fseek.
Mari kita bincangkan tentang bait statistik saiz fail.
3.filesize mengesan saiz fail
<?php $fp = fopen('output.txt', 'r+'); //讀取10個字符 echo fread($fp,10); //指針設(shè)置回到開始處 rewind($handle); //再讀取10次看看輸出的是什么 echo fread($fp,10); //文件指針向后移動10個字符 echo fseek($fp,10); //再看看文件中輸出的是什么 echo fread($fp,10); fclose($handle); ?>
4. Fungsi lain untuk mengendalikan fail
Malah, terdapat beberapa fungsi lain untuk mengendalikan fail, baca Dapatkan fail
Kami menggunakan contoh untuk menggunakan semua fungsi di atas.
Kami menulis sekumpulan fail dalam fail demo.txt:
abcdeefghijklk
opqrst
uvwxyz
12345678>?
<?php $filename = 'demo.txt'; echo $filename . '文件大小為: ' . filesize($filename) . ' bytes'; ?>fgets membuka satu baris pada satu masa:
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgetc($fp); //我要全部讀取可以,讀取一次將結(jié)果賦值一次給$string while($string = fgetc($fp)){ echo $string; } ?>Dengan kod di atas, anda akan mendapati setiap bacaan membuka satu baris pada satu masa. Pulangan bacaan akhir adalah palsu. Mari kita lihat fungsi pemintasan fail seterusnya:
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgets($fp); echo fgets($fp); echo fgets($fp); echo fgets($fp); ?>Dalam contoh di atas, kami mendapati bahawa kandungan boleh dipaparkan selagi ia dipintas. 5. Fungsi masa fail
<?php //打開我們上面的demo.txt文件 $file = fopen("demo.txt", "a+"); //你可以數(shù)數(shù)20個字有多長,看看是不是達(dá)到效果了 echo ftruncate($file,20); fclose($file); ?>
9. Mekanisme kunci fail
Mekanisme kunci fail secara amnya tidak mempunyai kesan sama sekali apabila satu fail dibuka. Bahagian pembelajaran ini sedikit abstrak. Tidak memikirkan bagaimana untuk mencapainya? Mengapa anda tidak dapat melihat kesannya?Jawapan: Kerana komputer beroperasi begitu pantas, pada asasnya pada tahap milisaat. Jadi eksperimen ini sebenarnya tiada kesan.
Dalam kes ini, jika terdapat kebarangkalian perlanggaran tertentu, saya tidak tahu operasi siapa yang akan diguna pakai.
Oleh itu, pada masa ini kami memperkenalkan mekanisme kunci.
Jika pengguna A menulis atau membaca fail ini, tambahkan fail itu pada bahagian tersebut. Saya boleh membacanya, dan begitu juga orang lain.
Namun, jika ini berlaku. Saya menggunakan kunci eksklusif. Fail ini kepunyaan saya. Jangan sentuh kecuali saya melepaskan kunci fail.
Nota: Tidak kira sama ada kunci fail ditambahkan, berhati-hati untuk melepaskannya.
Mari kita lihat fungsi ini:bool flock ( resource $handle , int $operation)
Fungsi : Penguncian fail perundingan ringan
Mari lihat jenis kunci:<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo "$filename文件的上次訪問時(shí)間是: " . date("Y-m-d H:i:s", fileatime($filename)); echo "$filename文件的創(chuàng)建時(shí)間是: " . date("Y-m-d H:i:s", filectime($filename)); echo "$filename文件的修改時(shí)間是: " . date("Y-m-d H:i:s", filemtime($filename)); } ?>Penerangan:
Dalam contoh di atas, untuk menulis pada fail, saya menambahkan kunci eksklusif pada fail.
Jika operasi saya selesai, selepas penulisan selesai, kunci eksklusif dilepaskan.
Jika anda membaca fail, anda boleh menambah kunci kongsi mengikut idea pemprosesan yang sama.
10. Fungsi pemprosesan direktori
Sebelum kami memproses semua fail, jadi bagaimana untuk berurusan dengan direktori dan folder?
Mari kita pelajari fungsi yang berkaitan dengan pemprosesan direktori atau folder.
Idea asas memproses folder adalah seperti berikut:
Apabila membaca laluan tertentu, tentukan sama ada ia adalah folder
Jika ia adalah folder, buka folder yang ditentukan dan kembalikan fail Pembolehubah sumber direktori
Gunakan readdir untuk membaca fail dalam direktori sekali, dan penunjuk direktori diimbangi ke belakang sekali
Gunakan readdir untuk membaca hingga akhir, jika tiada fail yang boleh dibaca, kembalikan false
Tutup direktori fail
Mari kita pelajari senarai fungsi yang biasa digunakan:
<?php $fp = fopen("demo.txt", "r+"); // 進(jìn)行排它型鎖定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件這個時(shí)候被我獨(dú)占了喲\n"); // 釋放鎖定 flock($fp, LOCK_UN); } else { echo "鎖失敗,可能有人在操作,這個時(shí)候不能將文件上鎖"; } fclose($fp); ?>
Oleh kerana ia dibaca sekali dan bergerak ke belakang sekali, bolehkah kita
<?php //設(shè)置打開的目錄是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 />'; //讀取到最后返回false //關(guān)閉文件夾資源 closedir($dh); } } ?>
11. >Tetapan kebenaran fail Fungsi ini biasanya digunakan dalam perisian peringkat pengurusan sistem. Contohnya: fail tertentu tidak dibenarkan untuk dilihat oleh kumpulan tetamu (pengguna tetamu).
Dalam pengurusan perusahaan, pengguna tertentu atau fail pengguna tertentu hanya dibenarkan dibaca dan tidak diubah suai. Ini adalah fungsi yang sangat biasa digunakan.
Nota:
Bab ini ialah bab pemahaman. Jika anda tidak pernah belajar Linux sebelum ini dan ia akan menjadi agak sukar, anda boleh melangkau bab ini dan mempelajarinya.
kurang berguna dalam proses pengeluaran sebenar.
Terutamanya untuk pelajar yang mempunyai sistem pengetahuan yang komprehensif di bawah Linux dan boleh fokus pada pembelajaran.
Sesetengah fungsi di bawah tingkap tidak dapat dilaksanakan.
Penggunaan fungsi di atas adalah sama seperti penggunaan operasi kebenaran Linux.
Saya hanya akan memberi anda contoh untuk melihat cara mengubah suai kebenaran:
chmod terutamanya mengubah suai kebenaran fail
<?php //設(shè)置打開的目錄是D盤 $dir = "d:/"; //判斷是否是文件夾,是文件夾 if (is_dir($dir)) { if ($dh = opendir($dir)) { //讀取到最后返回false,停止循環(huán) while (($file = readdir($dh)) !== false) { echo "文件名為: $file : 文件的類型是: " . filetype($dir . $file) . "<br />"; } closedir($dh); } } ?>
Kami sering menghadapi situasi memproses laluan fail.
Contohnya: Akhiran fail perlu dikeluarkanLaluan perlu mengeluarkan nama tetapi bukan direktoriHanya direktori laluan dalam nama laluan perlu dikeluarkanAtau huraikan setiap bahagian URL untuk mendapatkan nilai bebasAtau pun bentuk URL sendiri
... ....
Ia diperlukan di banyak tempat Fungsi kelas pemprosesan laluan.
Kami telah menandakan fungsi pemprosesan laluan yang biasa digunakan untuk semua orang Anda hanya boleh memproses fungsi pemprosesan laluan ini:
2.Pathinfo?. >
array pathinfo (string $path)Fungsi: Lulus dalam laluan fail dan mengembalikan pelbagai komponen fail
<?php //修改linux 系統(tǒng)/var/wwwroot/某文件權(quán)限為755 chmod("/var/wwwroot/index.html", 755); chmod("/var/wwwroot/index.html", "u+rwx,go+rx"); chmod("/somedir/somefile", 0755); ?>Hasilnya adalah seperti berikut:Nama direktori fail: d:/www
Nama fail penuh: lib.inc.php
Sambungan fail: php
Tiada Fail nama yang mengandungi sambungan: lib.inc
3.Nama asas
nama asas rentetan ( rentetan $path[, rentetan $akhiran ]) fungsi : Lulus dalam laluan dan kembalikan nama fail
Parameter pertama melepasi laluan.
Parameter kedua menyatakan bahawa nama fail saya akan berhenti apabila ia mencapai aksara yang ditentukan.
<?php $path_parts = pathinfo('d:/www/index.inc.php'); echo '文件目錄名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件擴(kuò)展名:'.$path_parts['extension']."<br />"; echo '不包含擴(kuò)展的文件名:'.$path_parts['filename']."<br />"; ?>Kesimpulan: Anda boleh melaksanakannya untuk melihat sama ada bahagian direktori fail dikembalikan.
5.parse_url
parse_url bercampur (rentetan $path)Fungsi: Pisahkan URL kepada pelbagai bahagian
<?php echo "1: ".basename("d:/www/index.d", ".d").PHP_EOL; echo "2: ".basename("d:/www/index.php").PHP_EOL; echo "3: ".basename("d:/www/passwd").PHP_EOL; ?> 4.Dirname dirname(string $路徑) 功能:返回文件路徑的文件目錄部份 <?php dirname(__FILE__); ?>Hasilnya adalah seperti berikut:array(8) {
["scheme"]=> string(4) "http"
["host"]=> 8 ) "nama hos"
["port"]=> int(9090)
["pengguna"]=> "nama pengguna"
["pass"]=> ( 8) "kata laluan"
["path"]=> rentetan(5) "/path"
["query"]=> rentetan(9) "arg=value"
[" serpihan "]=> rentetan(6) "anchor"
}
6.http_build_query
rentetan http_build_query ($data bercampur untuk diproses ) Fungsi: Hasilkan rentetan pertanyaan dalam url
<?php $url = 'http://username:password@hostname:9090/path?arg=value#anchor'; var_dump(parse_url($url)); ?>Hasilnya adalah seperti berikut: nama pengguna=liwenkai&area=hubeihttp_build_url()
Fungsi: Hasilkan url
Nota: Pemalar PHP_EOL
bersamaan dengan echo "rn" pada platform windows
bersamaan dengan echo "; n" pada platform unixlinux ;
Setara dengan gema "r" pada platform mac;
13. Teks buku tetamu
Kami telah bercakap tentang begitu banyak sistem pemprosesan fail, tetapi kami tidak dapat menulis perkara yang paling asas. Bermula dari bahagian ini, anda akan mendapati bahawa anda boleh menulis lebih banyak perkara. Seterusnya mari kita lihat kesan demonstrasi: Antara muka borang untuk menulis kandungan mesej dalam antara muka berikut:index.php --- Paparkan kotak input dan kandungan mesej write.php ---Tulis data ke message.txt
message.txt ---Simpan kandungan sembang
<?php //定義一個關(guān)聯(lián)數(shù)組 $data = [ 'username'=>'liwenkai', 'area'=>'hubei' ]; //生成query內(nèi)容 echo http_build_query($data); ?>
Selepas membaca kandungan yang baru ditunjukkan, kita tahu bahawa apabila fail disimpan:
Bahagian dibahagikan antara bahagian
Kandungan dan pengguna dipisahkan sebelum menggunakan simbol khas
Jom tulis kod write.php untuk menulis mesej pada fail:
<?Php //設(shè)置時(shí)區(qū) date_default_timezone_set('PRC'); //讀了內(nèi)容 @$string = file_get_contents('message.txt'); //如果$string 不為空的時(shí)候執(zhí)行,也就是message.txt中有留言數(shù)據(jù) if (!empty($string)) { //每一段留言有一個分格符,但是最后多出了一個&^。因此,我們要將&^刪掉 $string = rtrim($string, '&^'); //以&^切成數(shù)組 $arr = explode('&^', $string); //將留言內(nèi)容讀取 foreach ($arr as $value) { //將用戶名和內(nèi)容分開 list($username, $content, $time) = explode('$#', $value); echo '用戶名為<font color="gree">' . $username . '</font>內(nèi)容為<font color="red">' . $content . '</font>時(shí)間為' . date('Y-m-d H:i:s', $time); echo '<hr />'; } } ?> <h1>基于文件的留言本演示</h1> <form action="write.php" method="post"> 用戶名:<input type="text" name="username" /><br /> 留言內(nèi)容:<textarea name="content"></textarea><br /> <input type="submit" value="提交" /> </form>