ファイルの入出力

サーバー上にファイルを作成するプログラムと、作成されたファイルを入力するプログラムです。

ファイル(test.txt)を出力するプログラムを呼び出すコードです。
<a href="http://maedakobe.rw.xsi.jp/php/file_put.php">File Put</a>
次のリンクをクリックすると file_put.php が呼び出されます。
File Put

ファイル(test.txt)を入力するプログラムを呼び出すコードです。
<a href="http://maedakobe.rw.xsi.jp/php/file_get.php">File Get</a>
次のリンクをクリックすると file_get.php が呼び出されます。
File Get

次のリンクをクリックすると url_get.php が呼び出されます。
url_get.php は "welcome.html" のソースコードを入力して印字するので、結果として Welcome PHP のページが呼び出されます。
url_get.php

プログラムの作成

  1. File_Put.php のソースコードはコンソールモードの ファイルの作成 と同じで、 これをそのまま utf-8(BOM 有り)でタイプします。
    サーバーにアップロードするファイルの文字コードは utf-8(BOM 有り)に統一することにします。
    サーバーによってはセキュリティの関係で、ファイルの新規作成を拒否されることがあります。
    そのときは事前に "test.txt" に適当な文字をタイプして、アップロードして下さい。
    "test.txt" には書き込みと読み込み属性を許可して下さい。
    オープンエラーの時は exit でスクリプトの実行を終了します。
    File_Put.php のソースコードです。
    <?php
        if (!($fp = fopen("test.txt","w")))
        {   exit('test.txt write open error');
        }
        fputs($fp,"りんご\n");
        fputs($fp,"バナナ\n");
        fputs($fp,"パイナップル\n");
        fputs($fp,"いちご\n");
        fclose($fp);
        print "test.txt Complete\n";
    ?>
    
  2. File_Get.php のソースコードは ファイルの入力 から少しだけ修正します。
    ブラウザ上では改行コード(\n)は無視されるので、全ての行が改行されずに表示されます。
    そこで一行ずつ '<br>' を追加して印字しています。
    File_Get.php のソースコードです。
    <?php
        // test.txt を入力する
        if (($fp = fopen("test.txt","r")))
        {   while(!feof($fp))
            {   print(fgets($fp) . '<br>');
            }
            fclose($fp);
        }
    ?>
    
  3. url_get.php を utf-8(BOM 付き)でタイプしてサーバーにアップロードして下さい。
    Welcome PHP のページ(welcome.html)を入力して印字します。
    PHP が吐き出したソースはブラウザに渡されるので、結果として Welcome PHP のページが表示されます。
    <?php
        // welcome.html を表示する
        $url = "welcome.html";
        if (($fp = fopen($url,"r")))
        {   while(!feof($fp))
            {   print(fgets($fp));
            }
            fclose($fp);
        }
    ?>
    
    <html>
    <head><meta charset=utf-8"></head>
    
    <body bgcolor=#f4f8ff>
    <h1>Welcome</h1>
    Welcome PHP!<br>
    </body>
    
    </html>
    
  4. URL をフルパスで設定しても良さそうなのですが、セキュリティの関係か表示されません?
      $url = "http://maedakobe.rw.xsi.jp/php/php.html";
      $url = "https://www.yahoo.co.jp/";
    
    一般のページを表示するときは、header() 関数を使って下さい。
    <?php
        header("Location: https://www.yahoo.co.jp/");
    ?>
    

前田稔の超初心者のプログラム入門
PHP Program