Ext JSやRapid Driveなど
システム開発の技術情報をご紹介。

お問い合わせ 資料請求 無料見積り

お電話でお気軽にお問い合わせくださいTel 03-6805-2904 営業時間 [平日]AM 9:30 - PM 6:30

ファイル操作

ファイル操作について

csv形式ファイルのダウンロード

サーバでcsvファイルを生成してダウンロードする

PHPでは、ファイル操作を組み合わせて、サーバでCSVファイルを生成することができます。

CSVファイルを生成してダウンロードするソース
<?php
    $file_name = "date.csv";
    $fp = fopen( $file_name, "w" );

    $theme = ""氏名", "性別", "年齢", "血液型", "郵便番号", "住所"n";
    fputs( $fp, $theme );

    $contents = """ . "山田 太郎" . "", "" . "男" . "", "" . "40" . "", "" . "B" . "", "" . "166-0003" . "", "" . "東京都杉並区高円寺南1-111-11" . ""n";
    fputs( $fp, $contents );
    fclose( $fp );
?>

<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">

<title>CSVファイルのダウンロード</title>
</head>
    <body>
        <a href="date.csv">ダウンロードできます!</a>
    </body>
</html>
生成されたCSVファイルへのリンク
ダウンロードできます!
リンクをクリックするとダイアログが表示
csvファイルを保存

上記のスクリプトでは、「$file_name = "date.csv";」で生成するファイルを指定して、「$fp = fopen( $file_name, "w" );」で書き込み専用でファイルを開きます。続いて、変数$themeに、CSVファイルを開いた時の見出しを、カンマ区切りで指定します。

そして、fputs()関数で変数$themeに指定された文字列を、作成したファイルdate.csvに書き込みます。その後のデータについても、同様にファイルへ書き込み、fclose()関数で生成したファイルを閉じます。

生成したCSVファイルへのリンクを指定すれば、ダウンロードができるようになります。

fputs( filepointer, string,[ length ] );

fputs()関数はfwrite()関数の別名で、すべての面で同一です。lengthパラメータはオプションであり、指定されない場合、文字列全体が書かれることに注意して下さい。

ディレクトリを作成・削除する

ディレクトリを作成する

mkdir()関数を使って、新しくディレクトリを作成することができます。

新規にディレクトリを作成する
<?php
    $dir = "c:¥template¥sample";

    $dirCheck = mkdir( $dir, 0777 );

    if( $dirCheck ) {

         echo "ディレクトリが作成されました";

    } else {

        echo "ディレクトリの作成に失敗しました";
    }
?>
実行結果
ディレクトリが作成されました

上記のスクリプトでは、本章で作成したローカルディスク(C:)直下の「template」ディレクトリ内に、「sample」ディレクトリを新規に作成しています。実際に作成できているかどうかは「template」ディレクトリ内を確認してみてください。

mkdir() 関数の第1引数にはディレクトリを作成するパス、およびディレクトリ名を指定します。パスは相対パスでも絶対パスでも指定することができます。第2引数を指定すると、作成するディレクトリにアクセス権を設定することもできます。アクセス権は、先頭に「0」をつけた8進数3桁で指定します。3桁の1桁目は「所有者」、2桁目は「所有グループ」、3桁目は「その他」のアクセス権を表します。

上記のスクリプトの「0777」は、すべてに「読み込み」「書き込み」「実行」を許可している指定です。第2引数を省略した場合は、デフォルトで「0777」になります。

アクセス権一覧
アクセス権
0なし
1実行
2書き込み
3書き込み、実行
4読み込み
5読み込み、実行
6読み込み、書き込み
7読み込み、書き込み、実行

また、mkdir()関数を使って、複数のディレクトリを作成することも可能です。

複数のディレクトリを作成する
<?php
    $dir = "c:¥template¥sample2¥sample3";

    $dirCheck = mkdir( $dir, 0777, true );

    if( $dirCheck ) {

        echo "ディレクトリが作成されました";

    } else {

        echo "ディレクトリの作成に失敗しました";
    }
?>
実行結果
ディレクトリが作成されました

上記のスクリプトでは、本章で作成したローカルディスク(C:)直下の「template」ディレクトリ内に、「sample2」ディレクトリを新規に作成し、さらにその作成したディレクトリの中に「sample3」ディレクトリも新規に作成しています。実際に作成できているかどうかは「template」ディレクトリ内を確認してみてください。

第3引数に「TRUE」を指定することで、指定パスに存在しないディレクトリが全て作成されます。「TRUE」を指定しなかった場合は、「Warning: mkdir() [function.mkdir]: No such file or directory in ・・・」のような警告メッセージが表示されます。

ディレクトリを削除する

rmdir()関数を使って、ディレクトリを削除することができます。

ディレクトリを削除する(1)
<?php
    $dir = "c:¥template¥sample";

    $dirCheck = rmdir( $dir );

    if( $dirCheck ) {

        echo "ディレクトリが削除されました";

    } else {

        echo "ディレクトリの削除に失敗しました";
    }
?>
実行結果
ディレクトリが削除されました

上記のスクリプトでは、(C:)直下の「template」ディレクトリ内の、「sample」ディレクトリを削除しています。実際に削除できているかどうかは「template」ディレクトリ内を確認してみてください。

ディレクトリを削除する場合は、削除対象のディレクトリ内には何も無いことが前提となります。もし、ディレクトリ内にファイルやディレクトリが残っている場合は警告メッセージが表示されます。