■ 前置き ■
今まで、PHPプログラムにより、
-
ブラウザ経由で、サーバー上にテキスト(文章)ファイルを保存する。
-
その保存した、テキスト(文章)ファイルを再びブラウザに呼び出し、その内容を修正して、再び、サーバー上のハードディスクに保存する。
という内容を延々と話してきて、一応の決着は前号のメルマガでつきました。
上記の操作は、イメージ的には、ワードやエクセルでの「上書き保存」に対応します。
そして、前号の最後で、ワードやエクセルの、「名前を付けて保存」に対応する機能が実現できたら便利かナ~、と申し上げました。
そこで、今号の内容は、PHPプログラムによる、テキスト(文章)ファイルの「名前を付けて保存」ということになりますが。。。
結論としては、出来ることは出来ましたが、エライきたないプログラム(コード)となってしまいました!!
スミマセン。
前回のメルマガを書いた時点では、「最初は、数行の訂正で済むだろう」と考えていたのですが、実際に手をつけてみると、自分的にはドエラい作業となってしまったのです。
(時間も限られているので、「エイッッ!、ヤッッ!」で作ってしまったのが正 直なところです。汗)
理由としては、
-
自分で作ったはずのプログラムなのに、時間をおいてしまった為、プログラム間の変数名の対応がアヤフヤとなってしまった。
-
上記の内容に関係しますが、プログラム中に、注釈文を入れていなかったので、PHPのプログラム(コード)の処理の少なくない部分を忘れてしまった。
従いまして、後で述べます、私が考えたPHPプログラムですが、あくまでも「とりあえず動いた」というレベルで、あんまり参考にならないと思います。
個人的な目的で使用するには問題ないと思いますが、今回紹介するモノよりも、遙かにスッキリとした、プログラム(コード)の記述がある筈です。
従いまして、今号はプログラム自体に興味のない場合は、次項の内容はスットバしてください。
とりあえず、次項の内容は
-
面倒だったので、HTML文で出力させる部分は、すべてprint関数で、出力させました。
-
一応、インターネットエクスプローラとFirefoxでは動作は確認していますが、本来なら、「’」(シングルクォーテーション)は「”」(ダブルクォーテーション)のエスケープシーケンスで記述されるのが正当だと思いますが、今回は、無理矢理、「’」で記述しています。
そんな訳で、プログラムの開発は、
-
時間を掛けずに、一気にやること。
-
後で、自分(あるいは他人)でも分かるように、注釈文はキチンと記述しておくこと。
ということは、大切だナ~、とつくづく実感した次第です。
話はとびますが、現在、日本国内でブログのプログラム(スクリプト)は、Movable Type(ムーバブルタイプ・MT)というものが普及していが、Movable Typeは、一連の200個以上のCGIで構成されています。
(↑ 実際にインストールしてみると分かると思いますが。。。)
これらのプログラム(コード)を、殆どノーミスで作り上げたのは、本当に凄いっっ!!、と思った次第です。
■ プログラム(コード)の詳細 ■
上でも書きましたように、「とりあえず動いた」というレベルで、あんまり参考にならないと思いますので、詳細な内容の記述は割愛し、紹介する程度に留めます。
ですから、あんまり興味のが無い場合には、プログラム(コード)の記述は流してください。
-
まず、ブラウザのアドレス欄に、
http://localhost/php/114-1.php
と入力します。
そうすると、サーバーの「C:\Inetpub\wwwroot\php」に保存された

「php」フォルダに保存されている、ファイルの一覧がリンク付きで表示されます。

-
そして、そのフォルダに保存された、「test.txt」のリンクをクリックすると、「test.txt」の内容がファイル名と共に、フォーム上に表示されます。

-
そこで、ブラウザ上で自分が好きなように、ファイル名や、文章(テキスト)の内容を修正して、「入力」ボタンをクリックすると。。。

-
サーバー上の、「C:\Inetpub\wwwroot\php」フォルダ内に、上記の内容で修正したファイルが新たに生成され、

その文章(テキスト)ファイルを開いてみると、上記のブラウザ上で修正された内容で保存できている事が確認できると思います。

で、そのPHPプログラムの内容ですが、以下の通りになります。
ただ、幾度も述べましたように、殆ど参考にならないと思いますので、詳細な解説は割愛させていただき、プログラム(コード)のソースをコピペするに留めます。
「114-1.php」
—————————————————————————————-
<?php
$dir_file = opendir( ‘./’ );
while( $file_name = readdir( $dir_file ) ){
print “<a href=’./114-2.php?hensuu01=”.”{$file_name}”.”‘>”.”{$file_name}”.”</a>”.”<br>”;
}
closedir( $dir_file );
?>
—————————————————————————————-
「114-2.php」
———————————————————————————
<?php
$hensuu02 = $_GET["hensuu01"];
$filePath = “C:\\inetpub\\wwwroot\\php\\” . $hensuu02;
$text01 = file_get_contents($filePath);
?>
<html>
<head>
<title>入力フォーム</title>
</head>
<body>
<form action=”114-3.php” method=”post”>
ファイル名<br />
<?php
print(”<input type=’text’ name = ‘file_name01′” . ” value=’” . $hensuu02 . “‘>”);
?>
<br />
テキスト入力<br>
<TEXTAREA name=”text01″ rows=”10″ cols=”20″><?php print($text01) ?></TEXTAREA><br>
<input type=”submit” name=”bottun1″ value=”入 力”>
</form>
</body>
</html>
———————————————————————————
「114-3.php」
————————————————————
<?php
$file_name02 = $_POST["file_name01"];
$text01 = $_POST["text01"];
$file_name03 = “C:\\inetpub\\wwwroot\\php\\” . $file_name02;
$file04 = fopen($file_name03,”w”);
fwrite($file04,$text01);
fclose($file04);
print(”書き込み終了しました。”);
?>
————————————————————
殆ど参考にならず、申し訳ありません。
という訳で、次号のネタは何にしようかナ~、と考えている、今日この頃です。
。。。続く







































