国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHPファイルの扱い

PHP には、ファイルの作成、読み取り、アップロード、編集のためのさまざまな関數(shù)があります。

注意: ファイルは慎重に扱ってください。

ファイルを操作するときは細(xì)心の注意を払う必要があります。間違って行うと、非常に深刻な損害を引き起こす可能性があります。

よくある間違いは次のとおりです:

1. 間違ったファイルを編集する

2. ハードドライブをジャンクデータで埋める

3. ファイルコンテンツを誤って削除する


PHP readfile() 関數(shù)

readfile($filename)

機(jī)能: ファイルパスを渡してファイルを出力します


たとえば、次の內(nèi)容を含むfile.txtという名前のファイルがあります

PHP 中國(guó)語(yǔ)學(xué)習(xí)へようこそ

readfile() 関數(shù)を使用してこのファイルを読み取り、出力ストリームに書き込みます。PHP コードは次のとおりです (読み取りが成功すると、readfile() 関數(shù)はバイト數(shù)):

単語(yǔ) セクション數(shù): 英語(yǔ)の場(chǎng)合は 1 バイト、gbk でエンコードされた中國(guó)語(yǔ)の場(chǎng)合は 2、utf-8 中國(guó)語(yǔ)の場(chǎng)合は 3、スペースと記號(hào)の場(chǎng)合は 1

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

プログラムの実行結(jié)果:

ようこそPHP中國(guó)語(yǔ)學(xué)習(xí)ではPHP39


file_get_contentsでファイルが開きます

上記は単にファイルを開いた直後の出力ですが、開いた後に変數(shù)に代入できる操作メソッドはありますか?ファイル?

PHP は確かにこのメソッドを提供します。このメソッドは、PHP がファイルを開いてコンテンツを返す方法の 1 つです。関數(shù)を見てみましょう:


file_get_contents (string filename)

関數(shù): ファイルまたはこのファイルを開くためのファイル パスは、ファイルの內(nèi)容を返します。ファイルの內(nèi)容は文字列です。

たとえば、次の內(nèi)容を含む file.txt ファイルがあります:

file_get_contents を使用して open

Use file_get_contents to open

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

プログラムの実行結(jié)果:

私は file_get_contents open を使用します


fopen、fread、fclose オペレーションはファイルを読み取ります

fopen ($file name, mode)

fread ($operation resource, read length)

fclose ($Operation Resource)

上記の関數(shù)を通じて、リソース タイプの通常の操作方法を説明します:

1. リソースを開きます

2. 関連関數(shù)を使用して操作します

3.リソースを閉じます

fopen fopen 関數(shù)の機(jī)能は、次の 2 つの主なパラメータです:

1 ファイルを開くためのモード

このリソース タイプでは、このリソースを操作するために他の機(jī)能が必要です。すべてのリソースは、開いたときに閉じる必要があります。


fread関數(shù) この関數(shù)の機(jī)能は、開いているファイルのリソースを読み取ることです。指定された長(zhǎng)さのファイル リソースを読み取り、その一部を読み取り、一部を後方に移動(dòng)します。ファイルの最後まで。

fclose関數(shù) fclose関數(shù)の機(jī)能はリソースを閉じることです。リソースは開いたり閉じたりします。

fopen のモード (下の表):

説明読み取り/書き込み。ファイルの先頭から開始します。 ただ書くだけ。ファイルを開いて內(nèi)容をクリアします。ファイルが存在しない場(chǎng)合は、新しいファイルを作成します。
r読み取り専用。ファイルの先頭から開始します。 r+
w


w+

読み取り/書き込み。ファイルを開いて內(nèi)容をクリアし、ファイルが存在しない場(chǎng)合は新しいファイルを作成します。

追加しました。ファイルを開いて末尾に書き込みます。ファイルが存在しない場(chǎng)合は新しいファイルを作成します。
a+読み取り/追加。ファイルの最後に書き込むことで、ファイルの內(nèi)容を維持します。

×

ただ書くだけ。新しいファイルを作成します。ファイルが既に存在する場(chǎng)合は、FALSE とエラーが返されます。

x+

読み取り/書き込み。新しいファイルを作成します。ファイルが既に存在する場(chǎng)合は、FALSE とエラーが返されます。
tWindowsでnをrnに変換
bバイナリオープンモード

1. ファイル

file.txtを開きます。ファイルの內(nèi)容は次のとおりです

どういたしまして

<?php
//你可以創(chuàng)建一個(gè)file.txt,以只讀模式打開
$fp = fopen('file.txt', "r");
//var_dump()操作一下$fp看看效果,輸出的是不是只有類型提示的是resource
var_dump($fp);
?>

2. ファイルを読み取ります

<?php
$fp = fopen('file.txt', "r");
//打開一個(gè)文件類型后,讀取12個(gè)字節(jié)
$contents = fread($fp, 12);
?>

3. ファイルを閉じます

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

プログラムの実行結(jié)果:

どういたしまして


fwrite でファイルを書き込みます

file_put_contents (string $file path, string $write data])

機(jī)能: 指定されたファイルに文字列を書き込み、ファイルが存在しない場(chǎng)合はファイルを作成します。返されるのは、書き込まれたバイトの長(zhǎng)さです


インスタンス

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
$data = "我是一個(gè)兵,來(lái)自老百姓";
$numbytes = file_put_contents('binggege.txt', $data);
if($numbytes){
    echo '寫入成功,我們讀取看看結(jié)果試試:';
    echo file_get_contents('binggege.txt');
}else{
    echo '寫入失敗或者沒有權(quán)限,注意檢查';
}
?>

プログラムの実行結(jié)果:

書き込みは成功しました。結(jié)果を読んで見てみましょう: 私は兵士、庶民から


fwrite ( resource $ file resource variable, string $ write string [, int length])

: fwrite のエイリアス関數(shù)は fputs です

上記の r モードを試しましたが、これは読み取り時(shí)にのみ使用されました。 次に、fopen で fwrite plus w を使用し、書き込みモードでファイルを書き込みます

ことができます。新しい test.txt ファイルを作成し、そこにコンテンツを書き込んでみてください。次に、test.txt を削除してみてください。どのようなヒントがあるのか??見てみましょう。

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
$filename = 'test.txt';
$fp= fopen($filename, "w");
$len = fwrite($fp, '我是一只來(lái)自南方的狼,一直在尋找心中的花姑娘');
fclose($fp);
print $len ."字節(jié)被寫入了\n";
?>

プログラムの実行結(jié)果:

66バイトが書き込まれました

概要:
1. ファイルが作成されたかどうかに関係なく、ファイルが開かれて書き換えられます
2. 元のファイルの內(nèi)容は上書きされます
3. ファイルが存在しない場(chǎng)合は作成されます


次のモードの違いを比較してください:

r+読み書き操作可能は読み書き両方可能
wのみ書き込み機(jī)能可能 w+

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
$filename = 'test.txt';
$fp= fopen($filename, "r");
$len = fwrite($fp, '我是一只來(lái)自南方的狼,一直在尋找心中的花姑娘');
fclose($fp);
print $len .'字節(jié)被寫入了\n';
?>

プログラムの実行結(jié)果:

nに0バイトが書き込まれました

rだけでの書き込みは失敗したことが分かりました


一時(shí)ファイルを作成する

以前に作成したファイルは永続ファイルです。

一時(shí)ファイルの作成は、日々のプロジェクト開発にも非常に役立ちます。一時(shí)ファイルを作成するいくつかの利點(diǎn)

1. 使用後に削除される

2. このファイルの削除ステータスを維持する必要がありません

例: A のファイルの內(nèi)容を B に転送する必要があります。 B それを C に転送します。

現(xiàn)実世界と同じように、まず一時(shí)的なボトルを使用して B の水を満たし、次に A のデータを B に書き込むことができます。仮ボトルの水をCに加えます。

この関數(shù)を?qū)W習(xí)しましょう:

resource tmpfile ( )

関數(shù): 一時(shí)ファイルを作成し、リソースタイプを返します。ファイルを閉じると削除されます。

インスタンス

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
$handle = tmpfile();
//向里面寫入了數(shù)據(jù)
$numbytes = fwrite($handle, '寫入臨時(shí)文件的內(nèi)容');
//關(guān)閉臨時(shí)文件,文件即被刪除
fclose($handle);
echo  '向臨時(shí)文件中寫入了'.$numbytes . '個(gè)字節(jié)';
?>

プログラムの実行結(jié)果:

一時(shí)ファイルに27バイトを書き込みます


ファイルの移動(dòng)、コピー、削除

ファイルの名前を変更します

rename($old name,$new name);

この関數(shù)は、古い名前を新しい名前に変更するブール値を返します。

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

上記の例は、text.txt ファイルの名前を text-1.txt に変更することです


ファイルをコピーしてください

copy(source file, target file)

機(jī)能: 指定されたパスを持つソースファイルをターゲットファイルの場(chǎng)所にコピーします。

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

上記の例は、file.txt という名前のファイルを、同じ內(nèi)容を持つ copy-file.txt という名前のファイルにコピーすることです。


ファイルを削除

リンク解除(指定されたパスのファイル)

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
$filename = 'test.txt';
unlink($filename);
?>

上記の例は、test.txtという名前のファイルを削除します


よくあることファイルに使用される関數(shù)

filesizeファイルサイズを検出

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
$filename = 'file.txt';
echo $filename . '文件大小為: ' . filesize($filename) . ' bytes';
?>

プログラムの実行結(jié)果:

file.txtのファイルサイズ: 14バイト

その他ファイル操作、ファイル読み込み関數(shù)

関數(shù)名 関數(shù)
fileファイル全體を配列中に読み込みます
fgetsはファイルポインタから1行読み込み、最後まで読んだらfalseを返します
fgetcはファイルポインタから文字を読み込み、最後まで読んだ後にfalseを返します
ftruncate ファイルは指定された長(zhǎng)さに切り詰められます


上記のすべての関數(shù)を使用する例を使用します。

text.txt ファイルにファイルのバッチを書き込みます:

abcdeefghijklk
opqrst
uvwxyz
12345678

fgetc は一度に 1 つずつ読み取ります

<?php
//以增加的r模式打開
$fp = fopen('text.txt','r+');
//你分發(fā)現(xiàn)每次只讀一個(gè)字符
echo  fgetc($fp) ."<br>";
//我要全部讀取可以,讀取一次將結(jié)果賦值一次給$string
while($string = fgetc($fp)){
    echo $string;
}
?>

プログラム実行結(jié)果:

a
bcdeefghijklk opqrst uvwxyz 12345678

fgets は一度に 1 行ずつ開きます:

<?php
//以增加的r模式打開
$fp = fopen('text.txt','r+');
//你分發(fā)現(xiàn)每次只讀一個(gè)字符
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp)."<br>";
echo  fgets($fp);
?>

プログラムの実行結(jié)果:

abcdeefghijklk
opqrst
uvwxyz
12345678


ファイル傍受関數(shù)

<?php
//打開我們上面的text.txt文件
$file = fopen("text.txt", "a+");
//你可以數(shù)數(shù)20個(gè)字有多長(zhǎng),看看是不是達(dá)到效果了
echo ftruncate($file,10);
fclose($file);
?>

プログラムを?qū)g行すると、text.txtファイルを開いて20バイトがあるかどうかを確認(rèn)できます


ファイルのtime関數(shù)

関數(shù) 関數(shù)の説明
filectime ファイル作成時(shí)間
filemtime ファイル変更時(shí)間
fileatime ファイルの最終アクセス時(shí)刻

インスタンス

<?php
header("Content-type:text/html;charset=utf-8");    //設(shè)置編碼
$filename = 'text.txt';

if (file_exists($filename)) {
    echo "$filename"."文件的上次訪問(wèn)時(shí)間是: " . date("Y-m-d H:i:s", fileatime($filename))."<br>";

    echo "$filename"."文件的創(chuàng)建時(shí)間是: " . date("Y-m-d H:i:s", filectime($filename))."<br>";

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

?>

プログラム実行結(jié)果:

text.txtファイルの最終アクセス時(shí)刻:2016-09-13 17:44:40
text.txtファイルの作成時(shí)刻は: 2016 -09-13 17:32:16
text.txt ファイルの変更時(shí)刻は: 2016-09-13 17:44:55


ディレクトリ処理関數(shù)

以前は、すべてでは、ディレクトリとフォルダーをどのように扱うか? ディレクトリまたはフォルダーの処理に関連する関數(shù)を?qū)Wびましょう。

フォルダーの処理の基本的な考え方は次のとおりです。

1. パスを読み取るときに、それがフォルダーであるかどうかを判斷します。

2. フォルダーである場(chǎng)合は、指定されたフォルダーを開きます。フォルダーを指定してファイルを返します ディレクトリのリソース変數(shù)

3. readdir を使用してディレクトリ內(nèi)のファイルを 1 回読み取り、ディレクトリ ポインターを一度オフセットします

4. readdir を使用して最後まで読み取ります。読み取り可能なファイル、false を返します

5. ファイル ディレクトリを閉じます

より一般的に使用される関數(shù)について學(xué)びましょう:


オープンディレクトリ readdir is_dir closedir
関數(shù)名 関數(shù)
フォルダーを開いて操作リソースに戻る
フォルダーリソースを読む
フォルダーかどうか判斷する
フォルダー操作リソースを閉じる
Filetypeはフォルダーかファイルかを示し、ファイルはファイルを示し、フォルダーはディレクトリを示します


インスタンス

<?php
//設(shè)置打開的目錄是D盤
$dir = "D:/";
//判斷是否是文件夾,是文件夾
if (is_dir($dir)) {
    if ($dh = opendir($dir)) {
        //讀取一次向后移動(dòng)一次文件夾指針
        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
        //關(guān)閉文件夾資源
        closedir($dh);
    }
}
?>

を?qū)g行できますプログラムをチェックして、それがコンピュータのDドライブのディレクトリではないことを確認(rèn)してください


ファイルの種類を決定してください

<?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);
    }
}
?>

プログラムを?qū)g行して確認(rèn)してください


ファイルパス関數(shù)

ファイルパスの処理ケースによく遭遇します。

例:

1. ファイルのサフィックスを取り出す必要があります

2. パスはディレクトリではなく名前から取り出す必要があります

3.パス名にディレクトリパスを入れます

4. または URL に入れます各部分が解析されて獨(dú)立した値が得られます

5. URL を自分で作成することもできます

多くの場(chǎng)所でパス処理の使用が必要ですクラス関數(shù)。

一般的に使用されるパス処理関數(shù)を誰(shuí)でも簡(jiǎn)単に処理できるようにしました:

返品ファイルのさまざまなコンポーネントbasenameファイル名を返す dirnameファイルディレクトリ部分 parse_url URLはその部分に分割されます
関數(shù)名 機(jī)能
pathinfo
http_build_query URL にクエリ文字列を生成します
http_build_url URL を生成します

pathinfo

pathinfo ( string $path)
機(jī)能: ファイルパスを入力し、ファイルのさまざまなコンポーネントを返します

<?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 '文件擴(kuò)展名:'.$path_parts['extension']."<br />";
echo '不包含擴(kuò)展的文件名:'.$path_parts['filename']."<br />";
?>

プログラムの実行結(jié)果:

ファイルディレクトリ名: D:/www
完全なファイル名: a.html
ファイル拡張子: html
拡張子なしのファイル名: a


basename

basename ( string $path[, string $suffix ])
関數(shù): パスを渡してファイル名を返します
最初のパラメーターとしてパスを渡します。
2 番目のパラメータは、ファイル名が指定された文字に達(dá)したときに停止することを指定します。

<?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>";
?>

プログラムの実行結(jié)果:

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


dirname

ディレクトリ名(文字列 $path )
関數(shù): ファイル パスのファイル ディレクトリ部分を返します

インスタンス

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

プログラムを?qū)g行します


parse_url

parse_ URL (string $path)
関數(shù): URLをさまざまな部分に分割します

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

プログラム実行結(jié)果:

array(8) {
["scheme"]=>
string(4) "http"
["host "]=>
string(8) "ホスト名"
["ポート"]=>
int(9090)
["ユーザー"]=>
string(8) "ユーザー名"
["パス"] =>
string(8) "パスワード"
["path"]=>
string(5) "/path"
["クエリ"]=>
string(9) "arg=value "
[ "fragment"]=> Data)
機(jī)能: URL にクエリ文字列を生成します

インスタンス

<?php
//定義一個(gè)關(guān)聯(lián)數(shù)組
$data = [
    'username'=>'liwenkai',
    'area'=>'hubei',
    'pwd'=>'123'
];
//生成query內(nèi)容
echo http_build_query($data);
?>

プログラムの実行結(jié)果:

username=liwenkai&area=hubei&pwd=123


PHP ファイルシステム リファレンス マニュアル

必要な場(chǎng)合PHP ファイルシステム関數(shù)の完全なリファレンス マニュアルについては、PHP ファイルシステム リファレンス マニュアルを參照してください。


學(xué)び続ける
||
<?php header("Content-type:text/html;charset=utf-8"); $data = "我是一個(gè)兵,來(lái)自老百姓"; $numbytes = file_put_contents('binggege.txt', $data); if($numbytes){ echo '寫入成功,我們讀取看看結(jié)果試試:'; echo file_get_contents('binggege.txt'); }else{ echo '寫入失敗或者沒有權(quán)限,注意檢查'; } ?>
提出するリセットコード
  • おすすめコース
  • コースウェアのダウンロード
現(xiàn)時(shí)點(diǎn)ではコースウェアはダウンロードできません。現(xiàn)在スタッフが整理中です。今後もこのコースにもっと注目してください?
<li id="meusa"><center id="meusa"></center></li>
<li id="meusa"></li>