PHP超入門 (53)
■フォームではなくリンクで値(数値を含む)をPHPプログラムら渡す■
暫く前から、このメルマガでは、
あるPHPを実行する(ブラウザでアクセスする)と、サーバーのフォルダにあ
るファイルの一覧が表示される
↓
表示されたファイルにはリンクが張られていて、それをクリックすると、ブ
ラウザ上にフォーム(テキストエリア)が表示され、同時に、その中にファ
イル(テキストファイル)の中身(文章)が表示される
↓
ユーザーは、フォーム(テキストエリア)内で、自由に文章が編集できる
↓
「保存」のボタンを押すと、編集された文章がテキストファイルとしてサー
バー上のハードディスクに再び保存される
ということを目的に、一連のお話をしています。
ここで、前回のおさらいをチラッとしますと、
<a href="./108-2.php?hensuu01=あいうえお">ここをクリックしてみてください</a>
という形式で、HTML文を書くと、「ここをクリックしてみてください」という
箇所にハイパーリンクが張られ、ユーザーがそのリンクをクリックすると、「
hensuu01」という名前の変数に「あいうえお」という値(文字)が代入され、
「108-2.php」というPHPプログラムに変数の内容を渡すことができることをお
話しました。
一方の、データ(文字・数値)を受け取る側である「108-2.php」では
------------------------------
<?php
$hensuu02 = $_GET["hensuu01"];
print ($hensuu02);
?>
------------------------------
となり、「 $_GET["hensuu01"」という形式で、上記の「hensuu01」の中身(
「あいうえお」)を取り出し、「$hensuu02」という名前の変数に代入していま
す。
最後は「print ($hensuu02);」という関数を用いて、「$hensuu02」の中身にあ
る「あいうえお」という文字をブラウザ上に表示することになります。
以上が、前回のおさらいの内容となります。
■ファイル名一覧に、ファイル名を含んだリンクを生成する■
そこで、いよいよ本題です。
以前の話ですが、とあるフォルダにあるファイル名一覧を表示するPHPプログラ
ムをご紹介しました。
--------------------------------------------------------------------
<?php
$dir_file = opendir( './' );
while( $file_name = readdir( $dir_file ) ){
print "<a href='./107-3.php'>"."{$file_name}"."</a>"."<br>";
}
closedir( $dir_file );
?>
--------------------------------------------------------------------
このPHPプログラムを実行すると(ブラウザからアクセスすると)、ブラウザの
画面には、ファイル名の一覧がハイパーリンクと共に表示され、それをクリッ
クすると、「107-3.php」というPHPプログラムが起動ることをお話しました。
その時には、「107-3.php」という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 );
?>
----------------------------------------------------------------------------------------------
というPHPプログラムを一例として考えてみました。
上記のPHPプログラムのキモは、ハイパーリンクの部分を、一度、バラバラに分
解して、文字列を結合させる機能を持つ、「.」という記号で再構成している
点です。
ここの部分で、上記のPHPプログラムが、一見、複雑に見える原因かと思います。
では、ここで、実際、このPHPプログラムを実行(ブラウザからアクセス)する
と、これが、どのようにブラウザに表示されるか見てみましょう。
上記のPHPプログラムを「109-1.php」という名前で、「C:\Inetpub\wwwroot\p
hp」フォルダに保存します。
そして、ブラウザのアドレス欄に「http://localhost/php/109-1.php」と入力
すると、ハイパーリンクが張られたファイルの一覧が表示され、
それぞれのリンクの上にマウスを重ねると(クリックはしないで下さい!!)、
ブラウザの左下に「http://localhost/php/109-1.php?hensuu01=(該当する)
ファイル名」と表示されることが分かると思います。
これで、「109-2.php」というPHPプログラムに、該当するファイル名を渡すこ
とができます。
これで、今回の一連のお話の山場は越えました。
次に、ファイル名を渡された「109-2.php」では、どのような処理をするかとい
うと。。。。
実を言うと、ず〜〜〜〜〜と以前にこのメルマガで登場したPHPプログラムを流
用することになります。
なのですが。。。このままお話を続けると、また非常に長くなってしまうので、
この続きは次回、ということでご了承願います。
。。。続く