国产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ù)を使用してこのファイルを読み取り、出力ストリームに書(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でファイルが開(kāi)きます

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

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


file_get_contents (string filename)

関數(shù): ファイルまたはこのファイルを開(kāi)くためのファイル パスは、ファイルの內(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. リソースを開(kāi)きます

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

3.リソースを閉じます

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

1 ファイルを開(kāi)くためのモード

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


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

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

fopen のモード (下の表):

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


w+

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

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

×

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

x+

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

1. ファイル

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

どういたしまして

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

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

<?php
$fp = fopen('file.txt', "r");
//打開(kāi)一個(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 でファイルを書(shū)き込みます

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

機(jī)能: 指定されたファイルに文字列を書(shū)き込み、ファイルが存在しない場(chǎng)合はファイルを作成します。返されるのは、書(shū)き込まれたバイトの長(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 '寫(xiě)入成功,我們讀取看看結(jié)果試試:';
    echo file_get_contents('binggege.txt');
}else{
    echo '寫(xiě)入失敗或者沒(méi)有權(quán)限,注意檢查';
}
?>

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

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


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

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

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

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

<?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é)被寫(xiě)入了\n";
?>

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

66バイトが書(shū)き込まれました

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


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

r+読み書(shū)き操作可能は読み書(shū)き両方可能
    wのみ書(shū)き込み機(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é)被寫(xiě)入了\n';
    ?>

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

    nに0バイトが書(shū)き込まれました

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


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

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

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

    1. 使用後に削除される

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

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

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

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

    resource tmpfile ( )

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

    インスタンス

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

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

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


    ファイルの移動(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 ファイルにファイルのバッチを書(shū)き込みます:

    abcdeefghijklk
    opqrst
    uvwxyz
    12345678

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

    <?php
    //以增加的r模式打開(kāi)
    $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 行ずつ開(kāi)きます:

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

    プログラムを?qū)g行すると、text.txtファイルを開(kāi)いて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)合は、指定されたフォルダーを開(kāi)きます。フォルダーを指定してファイルを返します ディレクトリのリソース変數(shù)

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

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

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

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


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


    インスタンス

    <?php
    //設(shè)置打開(kāi)的目錄是D盤(pán)
    $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è)置打開(kāi)的目錄是D盤(pán)
    $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 '寫(xiě)入成功,我們讀取看看結(jié)果試試:'; echo file_get_contents('binggege.txt'); }else{ echo '寫(xiě)入失敗或者沒(méi)有權(quán)限,注意檢查'; } ?>
    提出するリセットコード
    • おすすめコース
    • コースウェアのダウンロード
    現(xiàn)時(shí)點(diǎn)ではコースウェアはダウンロードできません。現(xiàn)在スタッフが整理中です。今後もこのコースにもっと注目してください?