?? PHP ?? ????: PHP ?? ??
1. ?? ???
1. ??? ????? ??? ??? ??? ???? ????? Ctrl+C(?? ??? ??? ??? ??)???. ??? ???? ? ??? ????. ?? ??? ?? ?? ??? ?? ???? ?????.
2. ????? ???? ??? ??? ???? ??? ? ??? ?? ????.
3. ????, ?? ??? ???. ??? ?? ?? ? ? ????:
?? ??? ???? ??? ? ????
PHP ?? ? ?? ?? ??? ??????
Html ?? ?? ? ?? ??? ??? ?????
..... ?? ??? ?? ??? ?? ?? ?????.
4. ?? ??? ??? ?? ????? ?? ?? ??? ??? ????. ??? ??? ??? ???? ???? ?? ??? ??????.
2. ?? ??
1.readfile ?? ??
???? ??? ?? ??? ?????? ?? ??? ???????.
int readfile (string $filename)
??: ?? ??? ???? ??? ?????.
?? ????? ?? ???? ??? ?? ??? ???? ??? ????.
<?php //linux類的讀了方式 readfile("/home/paul/test.txt"); //windows類的讀取方式 readfile("c:\boot.ini"); ?>
??: ? ??? Windows ???? ?????? ?? ??? ?????? ? ????. ??? ?? ? ? ???? ? ? ???.
2.file_get_contents ?? ??
?? ??? ??? ? ? ?? ??? ???? ??? ??? ? ?? ??? ????? ??? ? ??
PHP? ??? ? ??? ?????. ? ???? PHP? ??? ?? ??? ???? ?? ? ?????.
string file_get_contents(string filename)
??: Pass ?? ?? ?? ??? ???? ??? ?? ?? ??? ?????. ??? ??? ??????.
<?php $filename = 'NoAlike.txt'; $filestring = file_get_contents($filename); echo $filestring; ?>
? ??? ??? ?? ?? ??? ???? ?????.
?? ??? ???? ??? ??? ?????. ?? ??? ?????.
rree???? ?? ?? ??? ??????.
3. fopen, fread ? fclose ??? ??? ????.
?? file_get_contents ?? ?? ??? ???? ?????. ??
??? fopen(??? $?? ??, ??? ??)
string fread(??? $?? ???, int ?? ??)
bool fclose ( ??? $ ?? ???)
? ??? ?? ??? ??? ???? ?? ??? ?????.
??? ??
?? ??? ??? ??
??? ??
fopen ?? fopen ??? ??? ? ?? ?? ????? ????:
l ??? ?? ??
l Open ??? ??
?? ??? ?? ?? ???? ??? ??? ??? ?? ?? ????.
? ???? ????? ??? ??? ?? ??? ?????. ?? ???? ? ? ??? ???.
fread ?? ??? ??? ?? ?? ???? ?? ????. ??? ??? ?? ???? ?? ??? ?? ??? ?? ?????. ?? ???.
fclose ?? fclose ??? ??? ???? ?? ????. ???? ??? ????.
??? ???? ?? ??? ? ??? ??? ?????. fopen ??? ??? ?????? fopen? ??? ?? ???????.
???? r ??? ???????. ?? ????? ?? ?? ??? ???? ?????????.
3. ?? ??? ???? ?? ??? ?? ??? ??? ???.
1. ?? ??
<?php //假設我們有一個多行的文件叫NoAlike.txt,沒有的話你可以新建一個這個文件 $filename = 'NoAlike.txt'; //打開這個文件,將文件內容賦值給$filestring $filestring = file_get_contents($filename); //因為每一行有一個回車即\n,我用\n來把這個字符串切割成數(shù)組 $filearray = explode("\n", $filestring); //把切割成的數(shù)組,下標賦值給$key,值賦值給$val,每次循環(huán)將$key加1。 while (list($key, $val) = each($filearray)) { ++$key; $val = trim($val); //用的單引號,單引號不解釋變量進行了拼接而已 print 'Line' . $key .':'. $val.'<br />'; } ?>
2. ?? ??
<?php //你可以創(chuàng)建一個NoAlike.txt,以只讀模式打開 $fp = fopen('NoAlike.txt', "r"); //var_dump()操作一下$fp看看效果,輸出的是不是只有類型提示的是resource var_dump($fp); ?>
3. ??? ????
<?php $fp = fopen('NoAlike.txt', "r"); //打開一個文件類型后,讀取長度 $contents = fread($fp, 1024); ?>?? ?? ??:
<?php $fp = fopen($filename, 'r'); $contents = fread($fp, 1024); fclose($fp); echo $contents; ?>
??: ? ??? ???? ? ??? ??? ??? ? ????. ? ??? ??????.
??? 'b'? ???? ???? ???? ??? ???? ??? ??? ?? ????. ??? ???? ????? ?? ??? ??? ??? 'b' ?? 't'? ??????.
4. ?? ?? ?? ? ??
1.file_put_contents? ??? ?????
?? ??? ???? ? ?? ??? ?????:int file_put_contents (string $file path, string $write data])
Function : ??? ??? ???? ??, ??? ??? ?????. ???? ?? ? ???? ?????
<?php $fp = fopen($filename, 'ab'); $contents = fwrite($fp, '可愛的很\n喲'); fclose($fp); echo $contents; ?>??? ?? ?? ?? ????? ?? ?????. ? ??? ??? ?? ??? ???? ??? ???? ???.
2.fwrite? fopen? ???? ?? ??? ?????
int fwrite (resource $ file ??? ??, string $? ??? ??? [, int length ])
??: fwrite? ?? ??? fputs????? ????? ?? ?? ???? r ??? ??? ?????. ???? fopen?? fwrite + w? ???? ?? ???? ??? ???.
??? ???????.
?? ??? ?? ?? ???? ?? ??? ???? ?? ??? 0?? ????. ??? ???? ??? ?? ??? ?????.
??: ?? ????? ? test.txt ??? ??? ??? ???? ? ? ????. ?? ?? test.txt? ??? ???. ?? ?? ??? ??????.
<?php $data = "我是一個兵,來自老百姓"; $numbytes = file_put_contents('binggege.txt', $data); if($numbytes){ echo '寫入成功,我們讀取看看結果試試:'; echo file_get_contents('binggege.txt'); }else{ echo '寫入失敗或者沒有權限,注意檢查'; } ?>
??:
1. ? ??? ?? ?? ??? ?? ?? ???
2. ?? ?? ??? ?????
3. ?? ???? ??? ?????
??? ?? ??? ???? ??? ?????.
??? ?????. ??? ?? ?????:
<?php $filename = 'test.txt'; $fp= fopen($filename, "w"); $len = fwrite($fp, '我是一只來自南方的狼,一直在尋找心中的花姑娘'); fclose($fp); print $len .'字節(jié)被寫入了\n"; ?>
??? ? r ?? + ??? ??? ? ????.
??? ?? r ??? ???? ?? ?? ? ??? ??? ????? ?? ??????. r? ???? ??? ?????.
3. a ??? w ??? ???
??? ?? ????, ??? ?????. <…
??:
4.x ??? w ??? ???
? ??? ??? ?????. ?? ? ? >? ??? ???. $filename? ?? ?? ???? ???? ??? ????. ??? ?? ????? ???
x+? ??? x ???? ??? ???. ?? ??? ??? ? ????.5. ?? ?? ???
??? ?? ??? ?? ?????.
?? ??? ??? ?? ???? ???? ???? ?? ?????. ?? ?? ??? ?? ?? ??:
1. ??? ?? ? ?????.
2. ? ??? ?? ??? ??? ??? ????. ??> ?: A? ?? ??? B? ????, B? ?? ??? C? ???? ???.
???? ????? ?? ?? ?? ???? B? ?? ?? ?? A? ???? B? ? ? ????. ?? ?? ?? C? ?????. ? ??? ?????:resource tmpfile ( )
??: ?? ??? ???? ??? ??? ?????. ??? ??? ?????. ???
6. ?? ??, ?? ? ??
1. ?? ???
$old name, $new name);
? ??? bool ?? ???? ?? ??? ? ???? ?????.
<?php $filename = 'test.txt'; $fp= fopen($filename, "r+"); $len = fwrite($fp, '我是一只來自南方的狼,一直在尋找心中的花姑娘'); fclose($fp); print $len .'字節(jié)被寫入了\n'; ?>
????? ?? ??? ??? ?? ??? ???? ?? ??? ? ????.
2. ?? ??
?? ??? ??? ??? ??? ???? ?? ??? ?????. ? ? ??? ????.
bool copy(????, ????)
??: ??? ??? ????? ???? ??? ????.
??? ??? ?? ????:
<?php $filename = 'test.txt'; $fp= fopen($filename, "a"); $len = fwrite($fp,'讀大學迷茫了,PHP學院PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?>
??:
?? ??? ?? ?? ??? ??? ?? ? ? ??.
3. ?? ??
?? ??? ??? ??? ??? ???? ?? ?????, ? ??? ?? ?????. Windows ???? ???? ?? ????? ? ??? ? ? ????.
? ??? ??? ?? ? ? ????.
bool unlink(??? ??? ??)
<?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'讀大學迷茫了,PHP學院PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?>
7. ?? ?? ?? ??
?? ?? ??? ??? ????? ?? ????? ???? ????. ?? ?? ??? ?? ?? ??? ??? ? ????.
?? ?? ?????.
1. ?????? ??? ? ??? ??? ?? ??? ?????.
2. ?? ???? ?? ??? ?? ??? ??? ??? ???? ????.
??? ?? ??? ?????? discuz? ?? ??? ?????? ???????.
?? ?? ???? ?? ?? ??????.
?? ?? ??? ???????. ??, ?? ?? ???????.
bool file_exists($?? ?? ?? ?? ?? ??)
??: ??? ????? ??.
bool is_readable($?? ?? ?? ?? ?? ??)
??: ??? ?? ? ??? ??
bool is_writeable($specify ?? ?? ?? ?? ??)
??: ?? ?? ?? ??
bool is_executable($? ?? ?? ?? ?? ?? ??)
??: ??? ?? ???? ??
bool is_file ($? ?? ?? ?? ?? ?? ??)
??: ???? ??
bool is_dir($ ?? ???? ?? ??? ?????)
??: ?????? ??
voidclearstatcache(void)
??: ??? ?? ??? ????
? ??? ??? ? ? ?????. ??? ???? ??? ??? ?? ??? ?????.
? ?? ?? ?? ??? ?? ???? ?????. ??? ?? ?? ??? ??? ?????? ???? ????, ??? ??? ??? ?????.
?? ?????? URL? install.php?? ??? ?? ??? install.lock??? ?????. install.lock ??? ????? ??? ? ????.
<?php //創(chuàng)建了一個臨時文件 $handle = tmpfile(); //向里面寫入了數(shù)據(jù) $numbytes = fwrite($handle, '寫入臨時文件'); //關閉臨時文件,文件即被刪除 fclose($handle); echo '向臨時文件中寫入了'.$numbytes . '個字節(jié)'; ?>
???? ????? ?? ?? ?? ??? ??? ???? ?? ?? ?? ?? ??? ??????. ??? ??? ??? ??? ? ????.
? ??? ???? ????? ??? ????.
1. ??? ???? ?? ??? ??? ?????.
2. ?? ?? ??
3. ?? ?? ??? ????. ?? ?? ??? false?? ?? ?? ??? ???? ????.
<?php //舊文件名 $filename = 'test.txt'; //新文件名 $filename2 = $filename . '.old'; //復制文件 rename($filename, $filename2); ?>
?? ?? ?? ?????. ?? PHP ?????? ?? ???? ?? ?? ??? ?????.
??? ??? ? ????? ?????.
8. ??? ?? ?? ?? ? ??
1. ?? ??? ?? ??
?? ????? ???? ??? ??? ????. ?? ????? ?? ??? ?????.
??? ???????.
Windows? ?? ??? d:xxxxxx???. ??: Windows? d:/xxx/xxx? ?????
linux ?? ??? /home/xxx/xxx???. ??: Linux?? homexxxxxx? ??? ??
????? ?? ???? ? ????? ??? ?? ???? d:xxxxxx? ?????. ??? ? 2?? ??? ??? ??? ? /? ??? ??? ???? Linux? Windows?? ??? ??? ??? ??? ? ????.
??? ?????:
DIRECTORY_SEPARATOR
?? ??? ??? ???? ??? ?? ??? ?????.
FILE? PHP ??? ?? ????? ???? ???? ??? ??? ????. ??? ?? FILE? ?? ??? ?? ??? ? ????.
??? FILE? ???? ?? ??? ?? ??? ???? ??? ?? FILE? ??? ? ????.
<?php //舊文件名 $filename = 'copy.txt'; //新文件名 $filename2 = $filename . '_new'; //修改名字。 copy($filename, $filename2); ?>
2. ?? ??? ?? ??
rewind( ??? ??)
??: ???? ?? ???? ????
fseek( ??? ??, int offset [, int from_where] )
??: ?? ???? ??? ???? ?? ??
?? ???? fread? ??? ??? ???? ?? ?? ??????. ??? ??? ??? ????. ??? ?? ??? ?? ???? ?? ????.
? ??? ?? ??? ? ????.
1. ??? ?? ?? ??? ???? ?????
2. ?? ???? A?? C? ????
3. ??.txt ??? ?? ??? ?????:
Abcdeefghijklk
Opqrst
Uvwxyz
12345678
??? ??? ?????.
<?php $filename = 'test.txt'; if (unlink($filename)) { echo "刪除文件成功 $filename!\n"; } else { echo "刪除 $filename 失敗!\n"; } ?>
?? ??? fseek? ??? ???? ???? ???? ?? ? ? ????. ??? ???? ?? ??? ?? ???? ?????.
??? ???? ???? ??? ?? ? ? ????. fseek ?? ?? ?? ?????.
?? ?? ?? ???? ?? ???? ?????.
3.filesize? ??? ??? ?????
<?php if(file_exists('install.lock')){ echo '已安裝,請不要再次進行安裝'; exit; } ?>
4. ?? ??? ?? ?? ??
???? ?? ??? ????. ?? ??, ?? ?? ????
?? ?? ??? ???? ?? ??? ?????.
demo.txt ??? ?? ??? ?????:
abcdeefghijklk
opqrst
uvwxyz
12345678
<?php //可以定義一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定義標志位變量 $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 '不能進行安裝'; } ?>
fgets? ? ?? ? ?? ????:
<?php $_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__); define('__CUR_FILE__', $_current_file); echo __CUR_FILE__; ?>
? ??? ???? ? ??? ? ?? ? ?? ??? ?? ? ? ????. ?? ?? ??? ?????.
???? ?? ???? ??? ???????.
<?php $fp = fopen('output.txt', 'r+'); //讀取10個字符 echo fread($fp,10); //指針設置回到開始處 rewind($handle); //再讀取10次看看輸出的是什么 echo fread($fp,10); //文件指針向后移動10個字符 echo fseek($fp,10); //再看看文件中輸出的是什么 echo fread($fp,10); fclose($handle); ?>
?? ???? ????? ?? ???? ??? ? ??? ?? ? ? ?????.
5. ??? ?? ??
<?php $filename = 'demo.txt'; echo $filename . '文件大小為: ' . filesize($filename) . ' bytes'; ?>
9. ?? ?? ????
?? ?? ????? ????? ?? ??? ? ? ?? ??? ????. ??? ? ??? ?? ??????.
??? ???? ???????
? ??? ? ? ????
??: ???? ????? ??? ???? ?? ??? ???? ?????. ??? ? ??? ??? ??? ??? ????.
? ???? ?? ??? ?? ??? ???? ?? ?? ??? ?? ????? ??????.
?? ?? ??:
? ??? ??? ?? ??? ?? ??? ??? ??? ??? ???.
? ?? ?? ?? ?? ???? ??? ??? ??? ???? ??????.
??? ???? ?? ??? ?????.
??? A? ? ??? ??? ?? ?? ??? ??? ?????. ?? ??? ?? ? ?? ?? ???? ?? ? ????.
??? ?? ????. ?? ???? ???? ????. ? ??? ?? ?? ??? ???? ?? ? ? ????.
??: ?? ?? ?? ??? ???? ??? ??? ? ?????.
? ??? ???????.
bool Flock(resource $handle, int $Operation)
?? : ??? ?? ?? ??
?? ??? ???????:
demo.txt? ?? ??? ???? ??? ???????. ??.
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgetc($fp); //我要全部讀取可以,讀取一次將結果賦值一次給$string while($string = fgetc($fp)){ echo $string; } ?>
??:
?? ???? ??? ?? ?? ??? ??? ??? ??????.
?? ??? ???? ??? ??? ? ?? ??? ?????.
??? ?? ???? ??? ?? ????? ?? ?? ??? ??? ? ????.
10. ???? ?? ??
?? ??? ???? ??? ????? ??? ??? ??????
????? ?? ??? ??? ??? ???????.
?? ??? ?? ????? ??? ????.
?? ??? ?? ? ???? ?????.
??? ?? ?? ??? ???. ??? ??? ???? ??? ?????. ????? ??? ??
readdir? ???? ????? ??? ? ? ?? ???? ???? ?? ? ? ??????.
readdir? ???? ??? ????. ?? ? ?? ??? ??? false? ??
?? ????? ????
????? ???? ?? ??? ???????.
<?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgets($fp); echo fgets($fp); echo fgets($fp); echo fgets($fp); ?>
? ? ?? ?? ? ? ????
<?php //打開我們上面的demo.txt文件 $file = fopen("demo.txt", "a+"); //你可以數(shù)數(shù)20個字有多長,看看是不是達到效果了 echo ftruncate($file,20); fclose($file); ?>
?? ?? ??
?? ?? ?? ? ??? ??? ?? ?? ??????? ????? ?????. ?: ??? ??(??? ???)? ?? ??? ? ? ????.
?? ????? ?? ??? ?? ?? ??? ??? ??? ???? ??? ? ????. ?? ?? ???? ??????.
??:
? ?? ?? ????. ??? Linux? ?? ?? ?? ?? ??? ?? ? ?? ???? ?? ?? ?? ? ????.
? ?? ?? ????? ???? ?????.
?? Linux ??? ???? ?? ???? ??? ??? ??? ? ?? ???? ???? ???.
? ?? ?? ??? ??? ? ????.
? ?? ???? ??? ?? ?? ???? ?????.
???? ?? ?????? ??? ????. ???? ?? ??? ?? ??? ? ???.
??? ???? ??? ???? ?? ?? ?????.
chmod? ?? ??? ??? ?????.
<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo "$filename文件的上次訪問時間是: " . date("Y-m-d H:i:s", fileatime($filename)); echo "$filename文件的創(chuàng)建時間是: " . date("Y-m-d H:i:s", filectime($filename)); echo "$filename文件的修改時間是: " . date("Y-m-d H:i:s", filemtime($filename)); } ?>
12. ?? ?? ??
1. ??>
?? ??? ???? ??? ?? ?????. ?: ?? ???? ???? ???.???? ??? ???? ??? ????? ???? ???.????? ???? ???. ?? ??? ??? ???? ????? URL? ? ??? ?? ???? ???? ?? ?????? URL? ?? ??
... ....
?? ??? ????? ???? ?? ?? ??? ??????.
2.Pathinfo
array pathinfo (string $path)
??: ?? ??? ???? ??? ??? ?? ??? ?????
???? ?? ?????. ????:
<?php $fp = fopen("demo.txt", "r+"); // 進行排它型鎖定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件這個時候被我獨占了喲\n"); // 釋放鎖定 flock($fp, LOCK_UN); } else { echo "鎖失敗,可能有人在操作,這個時候不能將文件上鎖"; } fclose($fp); ?>
??? ??? ????.
?? ???? ??: d:/www
?? ?? ??: lib.inc.php
?? ???: php
?? ?? ???? ?? ??: lib.inc
3.Basename
string basename( string $path[, string $suffix ])
??: Pass ??? ?? ?? ??? ?????.
? ?? ????? ??? ?????.
? ?? ????? ?? ??? ??? ??? ???? ????? ?????.
<?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 />'; //讀取到最后返回false //關閉文件夾資源 closedir($dh); } } ?>
??: ???? ??? ???? ??? ????? ??? ? ????.
5.parse_url
??? ?? ?? URL(??? $path)
??: URL? ?? ???? ??
<?php //設置打開的目錄是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); } } ?>
??? ??? ????.
array(8) {
["scheme"]=> "http"
["host"]=> 8 ) "??? ??"
["port"]=> int(9090)
["user"]=> "username"
["pass"]=> ( 8) "password"
["path"]=> string(5) "/path"
["query"]=> string(9) "arg=value"
[" ?? "]=> string(6) "anchor"
}
6.http_build_query
string http_build_query(??? $data ?? )
??: URL? ?? ??? ??
<?php //修改linux 系統(tǒng)/var/wwwroot/某文件權限為755 chmod("/var/wwwroot/index.html", 755); chmod("/var/wwwroot/index.html", "u+rwx,go+rx"); chmod("/somedir/somefile", 0755); ?>
??? ??? ????.
username=liwenkai&area=hubei
http_build_url()
??: URL ??
??:
PHP_EOL ??
? Windows ???? echo "rn"? ????.
? echo "? ????. n"? unixlinux ????? ;
mac ?????? echo "r"? ?????.
13. ??? ???
?? ?? ???? ?? ??? ?????? ?? ???? ??? ???? ?????.
? ???? ???? ?? ? ?? ?? ? ? ??? ?? ?? ? ????.
???? ?? ??? ???????.
?? ??????? ??? ??? ???? ?? ?????:
?? ? ????? ????? message :
?? ??? ???????:
index.php --- ?? ?? ? ??? ?? ??
write.php ---message.txt? ??? ??
message.txt ---?? ?? ??
index.php ??
<?php $path_parts = pathinfo('d:/www/index.inc.php'); echo '文件目錄名:'.$path_parts['dirname']."<br />"; echo '文件全名:'.$path_parts['basename']."<br />"; echo '文件擴展名:'.$path_parts['extension']."<br />"; echo '不包含擴展的文件名:'.$path_parts['filename']."<br />"; ?>
?? ??? ???? ?? ?? ??? ?? ????? ? ? ????.
??? ?? ?? ?????
?? ??? ???? ?? ???? ???? ?????
??? ???? ?? write.php ??? ??? ?????.
<?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__); ?>