2007/08/02
42歳のオヤジにもできた!初歩からのパソコンサーバー化計画(Vol.110)
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ 42歳のオヤジにもできた!初歩からのパソコンサーバー化計画 Vol.110 2007/08/02 発行 ■E&A工房■□■□■□■□■□■□■□■□■□ http://www.e-and-a.ws ■ お世話になっております。 角松法誠です。 とうとう先月は、発行が一回のみとなってしまいました。 目標は、月2回なのですが、月1回のみというのは、長いこのメルマガの歴史 の中で2回目なんじゃないかと思います。 どうも、申し訳ありません。 さて、私の住む埼玉は、梅雨も明けて、夏本番という感じですが、私の場合、 在宅ワークが中心ですので、あまり外の暑さというのは実感しないのですが、 時々、初めてのお客さんの所に行く時は、さすがにスーツを着ていく訳ですが、 涼しいのに馴れている自分とってはかなり、ツライです。 これを毎日続けているサラリーマンの方は大変だと思います。 (かくいう私も、数年前まではサラリーマンでしたが。。。) この季節、暑さ対策をして、体調管理には十分お気を付けください。 ■ウイルス対策ソフトに要注意!!■ 少し前に、リリースした パソコン(PC)初心者向けパソコンサポートサービス http://www.e-and-a.org/ ですが、おかげを持ちまして、メールでの問い合わせがポツリポツリと来てお ります。 ホームページ上でも明言しているように、メールでの相談・問い合わせは無料 ですから。。。 さて、その中で、気になったことを、ここでチョットお話してみたいと思いま す。 「ある日突然サーバーにアクセスできなくなった」 「パソコンをリカバリーしたらサイトに接続できなくなった」 という場合が起きましたら、まず、パソコンにインストールされている、ウイ ルス対策ソフトを疑ってください。 メールのやり取りで、このウイルス対策ソフトを無効にしたら、正常に動作す るようになった、という例がいくつかありました。 今の時代、ウイルス対策ソフトは必須でしょうし、多くの市販のパソコンには ウイルス対策ソフトがプリインストールされています。 ただ、このウイルス対策ソフト、ネットからの悪意のある攻撃を防いでくれる 大変有難いソフトですが、たまに、正常なソフトにも影響を与え、一部の動作 を邪魔してしまうこともあるようです。 私が、ネットで見つけた一番悲惨な例は、 Norton AntiVirus、Wikiをウイルスと誤認して全削除 http://gigazine.net/index.php?/news/comments/20070303_norton_delete_tiddlywiki/ 幸いにも、私は、記事中にある「Wiki」は使っていませんが、被害に合われた 方は、「もう、絶対にNortonなんか使うものかっっ」と思ったでしょう。 そんな理由もありますし、一番の理由は、パソコンの動作が重くなる、という 理由で、私はウイルス対策ソフトを一切使っていません。 時々、いくつかのオンラインスキャンサービスを使ってチェックはしているの ですが、今までのところ、被害はゼロです。 話はチョット横道に逸れてしまいましたが、もし、ある日、突然パソコンの動作 がおかしくなったら、インストールされているウイルス対策ソフトを疑ってみて ください。 では、ここからが、このメルマガの本論となります。 さて、このメルマガなんですが、もし、あなたが、今号から初めて読んで頂く ならば、とりあえず、今号からは一時保管しておいて、以下のページから読ん でいただければ、と思います。 http://www.e-and-a.ws/05/056.asp (文章&図) 又は http://blog.mag2.com/m/log/0000114576/105163627?page=1#105163627 (文章のみ) と、言いますのも、当メルマガは一回読みきりタイプのものではなく、一連の シリーズとして配信していますので、途中から購読いただいても、内容がチン プンカンプンだと思いますので、この点についてはご了承をお願いいたします。 では、以下からは、前回からの続きのお話をしたいと思います。 いつもながらのことですが、図と文章をいっぺんに見たい場合には、 http://www.e-and-a.ws/06/110.asp をご覧ください。 ■いままでのおさらい■ 最初にも書いたように、前回から、かなり間が空いてしまいましたので、今ま でのおさらいを兼ねて、今号がどの位置にいるのか確認をしたいと思います。 かなり前から続けている、このメルマガの内容ですが、流れとすれば、以下のようになります。 あるPHPを実行する(ブラウザでアクセスする)と、サーバーのフォルダにあ るファイルの一覧が表示される ↓ 表示されたファイルにはリンクが張られていて、それをクリックすると、ブ ラウザ上にフォーム(テキストエリア)が表示され、同時に、その中にファ イル(テキストファイル)の中身(文章)が表示される ↓ ユーザーは、フォーム(テキストエリア)内で、自由に文章が編集できる ↓ 「保存」のボタンを押すと、編集された文章がテキストファイルとしてサー バー上のハードディスクに再び保存される ということを目的に、一連のお話をしています。 ここで、前回の内容をチラッとしますと、 とあるフォルダに保存されているファイルの一覧をブラウザに表示させる。 そして、表示されたファイル名にはリンクが張ってあり、その各リンクには、 「109-2.php」という、PHPプログラムに、表示されたファイル名を渡すような 形になっている。 という話まででした。 例をいうと、ブラウザに表示されている「test.txt」というファイル名があっ たとすると、それにはハイパーリンクが張ってあり、 <a href='./109-2.php?hensuu01=test.txt'>test.txt</a> これにより、「test.txt」というファイル名が、「hensuu01」という名前の変 数に取り込まれ、受けて側である「109-2.php」というPHPプログラムは、受け 取った「hensuu01」という変数から、「test01.txt」というファイル名を取り 出し、イロイロと処理することになます。 ここで、もしかしたら、眩暈を起こしてしまうかもしれませんが、実際のPHPプ ログラムを再掲します。 フォルダにあるファイル名の一覧をハイパーリンクと共にブラウザに表示する PHPプログラム「109-1.php」 ---------------------------------------------------------------------------------------------- <?php $dir_file = opendir( './' ); while( $file_name = readdir( $dir_file ) ){ print "<a href='./109-2.php?hensuu01="."{$file_name}"."'>"."{$file_name}"."</a>"."<br>"; } closedir( $dir_file ); ?> ---------------------------------------------------------------------------------------------- という例を書いてみました。 ■受け取ったファイル名の内容をブラウザのフォーム内に表示する■ それでは、ファイル名を受け取った「109-2.php」というPHPプログラムには、 どうさせたらいいでしょうか? ここで、最終目的である、ブラウザのフォーム内に、「test.txt」の中身とい うか文章(テキスト)を表示させ、ブラウザ上で、いろいろと修正をしたいと ころです。 先ずは、受け取った変数「hensuu01」からファイル名「test.txt」を取り出す 操作ですが、これについては、前回、超簡単なプログラム ------------------------------ <?php $hensuu02 = $_GET["$hensuu01"]; print ($hensuu02); ?> ------------------------------ で解決済みです。 では、ここからが本番で、取り出したファイル名から、そのサーバーのハード ディスクにあるファイルにアクセスして、そのファイルを開かなくてはいけま せん。 ネタから先に言ってしまいますと、これは、このメルマガで、ず〜と以前に紹 介したPHPプログラムの一部を書き換えるだけで済みます。 そのPHPプログラムとは。。。 ------------------------------------------------------------------------------- <?php $file = fopen("C:\\inetpub\\wwwroot\\php\\096-2.txt","r"); $text01 = fgets($file); fclose($file); ?> <html> <head> <title>入力フォーム</title> </head> <body> <form action="096-3.php" method="post"> テキスト入力:<input type="text" name="text01" value="<?php print($text01) ?>"> <input type="submit" name="bottun1" value="入 力"> </form> </body> </html> ------------------------------------------------------------------------------- です。 参考: http://www.e-and-a.ws/06/098.asp 上記のプログラムの $file = fopen("C:\\inetpub\\wwwroot\\php\\096-2.txt","r") の部分で、「096-2.txt」というファイルを読み込み専用で開く、という動作を 指定していますが、この中の「096-2.txt」をファイル名そのものではなく、変 数に変えてしまえばよいかもしれません。 そうすると、 こんな具合でいかがでしょうか? ------------------------------------------------------------------------------- <?php $hensuu02 = $_GET["hensuu01"]; $filePath = "C:\\inetpub\\wwwroot\\php\\" . $hensuu02; $file = fopen($filePath,"r"); $text01 = fgets($file); fclose($file); ?> <html> <head> <title>入力フォーム</title> </head> <body> <form action="096-3.php" method="post"> テキスト入力<br> <FORM><TEXTAREA rows="10" cols="20"><?php print($text01) ?></TEXTAREA></FORM><br> <input type="submit" name="bottun1" value="入 力"> </form> </body> </html> ------------------------------------------------------------------------------- というものを考えてみました。 上記、PHPプログラムの "C:\\inetpub\\wwwroot\\php\\096-2.txt" で、変数の部分と、その他の部分に一度分解し、文字列を結合させる機能を持 つ「.」で、文字列を再構成しているところがミソです。 「$file = fopen("C:\\inetpub\\wwwroot\\php\\096-2.txt","r");」の行で、 一行に書いても良いのですが、そうすると、プログラムが見づらくなるので、 再構成する操作を別の一行に記述し、その再構成した内容を、一度「$filePat h」という名前の変数に格納しているところが、チョット違うところです。 また、フォームの部分も、一行テキストエリアではなく、複数行テキスト領域 に変更してあります。 さて、以上のPHPプログラムを「109-2.php」という名前で、「C:\Inetpub\www root\php」に保存します。 (図 http://www.e-and-a.ws/06/110-1.gif ) そして、テスト用に あいうえお カキクケコ さしすせそ と簡単な複数行の文章をメモ帳等で作成し、 (図 http://www.e-and-a.ws/06/110-2.gif ) 「test.txt」という名前で「C:\Inetpub\wwwroot\php」に保存します。 (図 http://www.e-and-a.ws/06/110-3.gif ) それでは、早速、実験したいと思います。 まず、ブラウザを立ち上げ、そのアドレス欄に「http://localhost/php/109-1. php」と入力すると、フォルダに保存されているファイル名の一覧がリンク付き で表示されます。 (図 http://www.e-and-a.ws/06/110-4.gif ) その中で、先程、メモ帳で作った、テスト用テキストファイル「test.txt」の リンクをクリックすると。。。 確かに、複数行テキスト領域に「あいうえお」と表示されるのですが、の残り の「カキクケコ」「さしすせそ」が表示されません。 (図 http://www.e-and-a.ws/06/110-5.gif ) HTMLのソースを見ても、「あいうえお」しか見当たりません。 どういうことでしょうか??? 実は、ファイルから文字列を取り出す関数である「fgets関数」に問題がありま す。 以前、一行テキストボックスの時に出てきた、この関数ですが、その時の「fg ets関数」の機能を見てみると、 「fgets()関数」 fopen()関数 で開いたファイルの、指定したファイル名の1行を取出しま す。 取出す場合には、引数で最大バイト数を指定しますが、省略した場合には 自動的に 1024バイト(日本語で 512文字分)になります。 そう、この「fgets関数」の場合、複数行あっても、最初の一行しか取り出して くれず、2行目以降は無視されていまうのです。 これでは、全く使い物になりません。 ここは、どうしても、複数行テキスト領域に、テキストファイル「test.txt」 の中身全部を表示させなければなりません。 そこで、次回はこの問題について対処したいと思います。 。。。続く ■編集後記というか雑感■ 「隅田川花火大会」 先週の末は、東京に住んでいる人じゃない方でも名前だけは知っていると思う 、隅田川の花火大会でした。 花火大会といえば夏の風物詩ですし、その中でも、この隅田川花火大会は著名 な方じゃないかと思います。 ただし。。。実際には、この花火大会、行って観るもんじゃないです。 なぜかって言うと、とにかく、人・人・人・人・・・ばかりで、ノンビリと夏 の風情を楽しむ、という訳にはいかないのです。 何せ、立ち止まることすらできないのですから。。。 いい場所を確保するには、昼間のうちから陣取らなければいけませんし、屋形 船も一年前から予約が必要、浅草ビューホテルの隅田川側の部屋も予約で満杯 です。 もう、かなり昔の話ですが、私も実際に何度か行ったことがあるのですが、夕 方に現場に到着しても、既に橋の上は人だかりで、また、警備員さんも立ち止 まらないようにと促し、とてもじゃありませんけど花火を楽しむ、という状況 ではありませんでした。 それに懲りてからは、私は、隅田川花火大会は、毎年、TVで楽しむことにし ています。 (解説とCMがちょっとウザッタイですが。。。) 同じ東京の大きな花火大会なら、東京湾華火大会の方が、観る場所も確保しや すいので、私個人としては、コチラの方をお勧めしたいと思います。 ただし、今年の場合、1つ大きな問題が私にはあります。 それは。。。 一緒に花火大会へ観に行くお相手の女性が、今日現在、いないことです(爆)。 ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■ 発行 E&A工房 角松 法誠 ホームページ http://www.e-and-a.ws/ メール e-and-a@v7.com このメールマガジンは『まぐまぐ!』 http://www.mag2.com/ を利用して発行 しています。 配信中止はこちら http://www.mag2.com/m/0000114576.htm ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■


