トップページphp
296コメント90KB

弐ch編集のphp講座

■ このスレッドは過去ログ倉庫に格納されています
0001弐ch編集02/02/05 18:40ID:???
まず最初は<?php
print("始まり");
?>
これでいいです
0069プチ弐ch編者 ◆exvx.LWc 02/02/09 21:28ID:S5to8xHm
>>68
うわ〜んそんな深いとこじゃなくて、もっと違う事教えてあげてYO〜
じゃあfopen関数でファイルの読み出し明日教えるので
for使うから教えてあげといてくれや〜
0070名無しさん@お腹いっぱい。02/02/09 22:24ID:nOl88oBF
for教ぇてー
0071プチ弐ch編者 ◆exvx.LWc 02/02/09 22:48ID:S5to8xHm
>>70
OK!暇ができたんでな。
例えばmegabbsを3回連続で表示させたいと思うだろ?
そしたらこういうソース書くんだよ
<?php
for($megabbs=0;$megabbs<3;$megabbs++;)
{
print("megabbs<BR>");
} 
?>
解説
for(初期化処理でここでは$megabbsは0と宣言された;
条件式ここでは$megabbsは3までと条件がついた;
ここで最後の処理、ここでは$megabbsの0を1ずつあげるよと決めた;)
{
print("megabbs<BR>←改行ってタグ");←そういう式を実行する場所、
}
?>
わからない事あったら質問して

宿題
forを使いphpと5回繰り返し表示したら止まるスクリプトを書こう!
00727002/02/09 23:39ID:asbQJ/tM
こんなんでよかと?
<?php
for($i=0; $i<5; $i++)
{
print "php<br>";
}
?>
0073名無しさん@お腹いっぱい。02/02/10 00:17ID:???
出力したソースも奇麗に見せたいなら
<?php
 for($i=0; $i<5; $i++)
   print("php<br>\n");
?>
0074名無しさん@お腹いっぱい。02/02/10 00:33ID:???
おお。やっぱりphpってcに似てるなー。
<?php
for($i=0;$i<5;i++) {
print("php<br>");
}
?>
0075 02/02/10 00:34ID:c7L2QbWR
<?php
$i=5;
for(;;){
if(!$i--) break;
print "test<br>\n";
}
?>
0076名無しさん@お腹いっぱい。02/02/10 00:39ID:???
<?php
$i=5;
for($i--){
print "test<br>\n";
}
?>
0077名無しさん@お腹いっぱい。02/02/10 00:44ID:???
補足:
$i++;より++$i;の方が若干処理が早くなるらしい
0078 02/02/10 00:45ID:???
<?php
$arr = array("test","test","test","test","test");
for( ;list($key,$val)=each($arr); )
print $val."<BR>\n";
?>
0079名無しさん@お腹いっぱい。02/02/10 00:47ID:???
むずいって
0080 02/02/10 00:51ID:???
<?php
$arr = array("t","e","s","t");
for($i=0;$i<5;++$i){
 for( ;list($key,$val)=each($arr); )
  print $val;
 print "<BR>\n";
 reset($arr);
}
?>
0081名無しさん@お腹いっぱい。02/02/10 00:52ID:???
>>78,>>80分からない。
00826802/02/10 00:53ID:???
最適化>78
<?php
$arr = array("test","test","test","test","test");
foreach($arr as $val)
print $val."<BR>\n";
?>
00836802/02/10 00:56ID:???
漏れのソースコードにfor文って使ったこと無いけど必要?
whileだけでループ処理はOKじゃない?
0084 02/02/10 00:57ID:???
<?php
$arr[0]="t";
$arr[1]="e";
$arr[2]="s";
$arr[3]="t";
for($i=0;$i<5;++$i){
for( $j=0;$j!=4;$j++ )
print $arr[$j];
print "<BR>\n";
}
?>
0085名無しさん@お腹いっぱい。02/02/10 00:59ID:???
( ´Д⊂ヽマックじゃローカルで出来ないノカー
0086 02/02/10 01:01ID:???
>>83
おれもWhileを多用する。forは使わない。

今日からPHPをはじめた。
Professional PHP Programingを187Pまでよんだ。
C言語ぽくてPerlより分かりやすいね。
ところで、foreach()ってPHP4からの関数?
0087 02/02/10 01:03ID:???
>>85
http://www.entropy.ch/
できるんじゃないの?
00886802/02/10 01:04ID:???
って言いながらも
<?php
for($i=0; $i < 10; ++$i){
for($j=0; $j < 10; ++$j)
printf("%3d", $i*$j)
print "\n";
}
?>
00896802/02/10 01:08ID:???
>86
そういやforeach()ってPHP3じゃ使えないみたい。
関数ではなくifやwhileみたいな制御構造だけど。
00908602/02/10 01:11ID:???
>>89
Profesional PHP Programingって本に載ってなかったから
そうかなと思った。
PHP4はマニュアルだけでいいかなと思って、この本しか買わなかった。
0091名無しさん@お腹いっぱい。02/02/10 01:17ID:???
>86
正解。
PHP4から。
まあ、今からやるなら4のが良いんだろうな。

>40
正直PEARに関する資料少なくて萎えてる。
わかりやすく解説してる所あれば良いのだけど。
00926802/02/10 01:28ID:???
>91
http://pear.php.net/manual/en/
ここは?
0093名無しさん@お腹いっぱい。02/02/10 01:30ID:???
あんたら難しすぎです。

1 名前:read.cgi ver5.25 (01/10/12)投稿日:2001/04/12(木) 15:11
あんたら難しすぎです。

| おすすめ| 2chサーバ監視所| BinboServer| Hikky.Zansu.com| 無料サービス|


さぶドメインシリーズ登場
   *****.syo-ten.com
   *****.gasuki.com
   *****.zansu.com
おすきな名前を無料で使えます。早い者勝ち。
工夫しだいで、楽しさ100倍。
深夜でも快適なレンタルサーバサービス(n)
あの巨大なサイトも使っています。

--------------------------------------------------------------------------------
read.cgi ver5.25 (01/10/12)
--------------------------------------------------------------------------------
00948602/02/10 01:37ID:???
>>93
んなことないよ。俺だって今日はじめたばかりだよ?
0095名無しさん@お腹いっぱい。02/02/10 01:48ID:???
cもperlも習ってないのにいきなりforeach()とか言われても、、、
00966802/02/10 01:49ID:???
俺は仕事で半年くらい。
ただ、他の言語(C,VB,C++,perl)辺りは入門書程度しかできん。
00978602/02/10 01:58ID:???
あ、でも仕事でC言語3年やってる。オラクルとPro*Cも。
仕事でCGI作ってもC言語だからPerlも使わないな。
0098名無しさん@お腹いっぱい。02/02/10 02:31ID:???
初めてこのスレ見た。なんか、for文見てCに似てるなぁ、って思ったら、やっぱり同じ事書いてる人がいた。
面白そうだからちょっとやってみようかなぁ・・・
0099名無しさん@お腹いっぱい。02/02/10 02:56ID:lc6ei33b
PEARでフォーム表示させるクラス、
あれなかなか便利だよ。
あとMacでPHPだけど、
OS Xなら>>87のページにいって
説明どおりにインストールすればできる。
というか、ボタン1つでApacheが起動するOS Xで
PHPを使わないでどうしますか。
UNIXの勉強にもなるよ。
0100名無しさん@お腹いっぱい。02/02/10 10:55ID:???
100ゲト
0101ミニ弐ch編者 ◆exvx.LWc 02/02/10 13:37ID:mVUXJnyg
今日はファイル表示だが夜に書く、で今みんながやってる事
説明するとさ
a[1]=1;
a[2]=2;
とかは配列変数って言ってaの中の1とか2って覚えとくといいよ
これに一気に代入したいときはarrayをつかうんです
a[]=array(4,5,6);こんな感じにいれると、
a[1]=4;
a[2]=5;
a[3]=6;
それとresetとeachは今はポインタって言うのに
関係あるとでも覚えとけばいい。
forreachの機能はreset+eachだよ
>>72
あってるよ、これからがんばっていこうぜ
>>98
このスレの最初の方から読んでけばついてけると思う

あとこの講座はあくまでも体験入門であってphpをはじめてみたいが
どの本も難しいって思ってる人が踏み出せる1っ歩作りなんだよ
0102名無しさん@お腹いっぱい。02/02/10 14:30ID:???
付いていけるようガンガルYO!(´ー`)
01038602/02/10 15:04ID:???
ファイル表示って何だろう・・・。
0104ミニ弐編 ◆exvx.LWc 02/02/10 15:10ID:mVUXJnyg
>>103
あの〜ファイルを読み出して表示する事だよ、だから今日は掲示板作るの
0105名無しさん@お腹いっぱい。02/02/10 15:27ID:???
なんだ、ホンモノの弐編じゃないのか(;´Д`)
0106名無しさん@お腹いっぱい。02/02/10 18:05ID:yVc1VLa3
うー、ローカルで実行できん・・・
test.phpにアクセスしようとすると<?phpinfo();?>って表示されちゃう。
ムキー
0107ミニ弐編 ◆exvx.LWc 02/02/10 18:33ID:mVUXJnyg
>>106
とりあえずhtmが動くか試してみて、それでhtmが動いたら
教えて
010810602/02/10 18:35ID:???
「一般パスでも実行する」にチェックいれたら出来ました。
逝ってきます。
010910602/02/10 18:37ID:???
>107
あ・・ミニ弐編さんのレスがついてる。すんません。
htmlは動いたんで、あれこれいじってたら動きました。
0110ミニ弐編 ◆exvx.LWc 02/02/10 18:40ID:mVUXJnyg
>>107
準備できたんだー!良かったら過去ログ読んで参加してく〜れや〜
011110602/02/10 18:45ID:???
>>110
今一番上から読み直してます。なんとか追いつきます〜
0112ミニ弐編 ◆exvx.LWc 02/02/10 21:01ID:mVUXJnyg
じゃあさっそく今日の講座開始

「超〜簡易1行掲示板を作ってみるとする」
とりあえずお決まりソース
<FORM method="POST" action="bbs.php"><INPUT size="20" type="text" name="msg"><INPUT type="submit" value="送信"></FORM>
<?php
$fl = "log.htm";
$filename = fopen("$fl","a+");
fwrite($filename,$msg);
fclose($filename);
$bbs=file("$fl");
for($i=0;$i<5;$i++)
{
print("$bbs[$i]");
}
?>
解説
<FORM method="POST" action="bbs.php"><INPUT size="20" type="text" name="msg"><INPUT type="submit" value="送信"></FORM>
↑お決まり投稿フォーム
<?php
$fl = "log.htm";←ファイル指定、ここではlog.htmを使うことにした
$filename = fopen("$fl","a+");←知ってのとうりfopen関数a+書き込むの専用
aが読み書きできるa+になった、もちろん他にも属性はそんざいする
fwrite($filename,$msg);←投稿された$msgが$filenameに書き込まれる
fclose($filename);←開けたら閉じる
$bbs=file("$fl");←fileとはファイル全体を読み出し配列に格納するんだよ
$flはlog.htmだからlog.htmを全部読んで$bbsの配列に入れた
for($i=0;$i<5;$i++)←過去ログよんで
{
print("$bbs[$i]");←$bbsに配列が$iまで読み出されて表示した
}
?>
わかった?自分ではあんま上手く教えれなかったって思ったんで
質問くれ〜。
背景に色つけたりは普通にweb作成みたいにやっていいですよ

宿題
いろいろいじって遊んでみよーん
次回
本格的な複数行の簡単掲示板を作る
0113名無しさん@お腹いっぱい。02/02/10 21:24ID:lc6ei33b
>>101
あれ?PHPの配列って1からスタートなんだ。
他の言語みたいに0からじゃないのか。
0114ミニ弐編 ◆exvx.LWc 02/02/10 21:25ID:mVUXJnyg
>>113
スマンミスった、すいません配列はphpでも0からです
0115名無しさん@お腹いっぱい。02/02/10 21:40ID:???
http://s7.xrea.com:8080/~readcgi/nihen/form.html
できたできた。
0116ミニ弐編 ◆exvx.LWc 02/02/10 21:42ID:mVUXJnyg
>>115
(・∀・)イイ!
受験終わったんで
毎日講座やるからその調子でがんばれよ〜な〜。
じゃぁ!
0117名無しさん@お腹いっぱい。02/02/10 21:47ID:???
$filename = fopen("$fl","a+");
$zenhitei=fopen("$megabbs",a);
2文字以上はダブルクオーテーションで囲むのね。
0118ミニ弐編 ◆exvx.LWc 02/02/10 21:56ID:mVUXJnyg
>>117
いや別にどっちでもよかったような、、
ミスとか少しでも疑問に思ったら質問くらへ〜
0119名無しさん@お腹いっぱい。02/02/10 21:59ID:???
>>118
外したら
Parse error: parse error in /どこか/bbs.php on line 3
だって。
0120satoshi@DGW ◆7m/R4F.. 02/02/10 22:06ID:???
このスレジャックしてPerl講座にしていいですか?
0121名無しさん@お腹いっぱい。02/02/10 22:08ID:???
>>120
ヽ(`Д´)ノダメ!スレ立テテヤッテクレ。
0122名無しさん@お腹いっぱい。02/02/10 22:08ID:???
phpはちゃんとエラー返してくれるから好き。
0123名無しさん@お腹いっぱい。02/02/10 22:15ID:???
Perlも一言頼めばエラー返してくれるけどな。
01246802/02/10 22:15ID:???
>>112
fopen()の戻り値はファイルハンドルだから$filenameよりは
$fhandle,$fhとかCの参考書みたく$fpみたいな感じにした方が誤解ないと思うよー
0125ミニ弐編 ◆exvx.LWc 02/02/10 22:24ID:mVUXJnyg
>>124
サンクス!またミスやそれはチョット、、って言うのあったら指摘お願い
暇があったらまだ教えてない簡単なとこ教えてあげてくらはい。
>>120
マジレスして悪いがここはphpがどんなもんか知りたい人が来てるんだから
やめてくれ。
あと本当お前って自分に酔ってんな、笑い
じゃぁ!
0126ミニ弐編 ◆exvx.LWc 02/02/10 22:27ID:mVUXJnyg
>>119
あれ?どうだっけ、、自分でもあんま覚えて無いや、悪い
じゃあ""これ付けないと駄目って事にしといてください(;;)
0127名無しさん@お腹いっぱい。02/02/10 22:29ID:???
$s =~ s/笑い/わらぃ/i;
0128名無しさん@お腹いっぱい。02/02/10 22:56ID:lc6ei33b
>>117
マニュアルには1文字でも囲むように例示してあるから
囲っといた方がいいのではないかと。
それより、その前の、ファイルの場所が気になる。
変数だけなんだったら囲わないんじゃないかな。普通。
ま、好みだからいいけどさ。たぶんちゃんと動くし。
0129名無しさん@お腹いっぱい。02/02/10 23:31ID:FjGWYD+b
文字列は囲わないとマズイでしょ。
連想配列の添え字は""いらないけど。
01307002/02/10 23:37ID:IYQ42XDN
とりあえずコピペと、一行追加した程度だけど出来た
http://kkkkk.s4.xrea.com:8080/nihen/bbs.php

でもなぜか改行が出来ない。
これ print("$bbs[$i] <br>\n");  じゃダメかな?教えてくださいませ。

使ったソース全部 ↓

<FORM method="POST" action="bbs.php">
<INPUT size="20" type="text" name="msg"><INPUT type="submit" value="送信"></FORM>
↓最新カキコ5件↓<br>
<?php
$fl = "log.htm";
$filename = fopen("$fl","a+");
fwrite($filename,$msg);
fclose($filename);
$bbs=file("$fl");
for($i=0;$i<5;$i++)
{
print("$bbs[$i] <br>\n");
}
?>
0131ミニ弐編 ◆exvx.LWc 02/02/10 23:44ID:mVUXJnyg
>>130
こんな感じ?違ったら詳しく説明きぼぬ。
<?php
$fl = "log.htm";
$filename = fopen("$fl","a+");
$msgg="$msg<BR>";
fwrite($filename,$msgg);
fclose($filename);
$bbs=file("$fl");
for($i=0;$i<5;$i++)
{
print("$bbs[$i] <br>\n");
}
?>
01327002/02/10 23:44ID:IYQ42XDN
あと常識なのかもしんないけど、一応。

112のミニ弐編姫のソースの部分を、bbs.phpっていうファイル名で保存して、
同時にログ書き込み用のlog.htmを0byteの中身空っぽ状態で作成。
で、二つを同じところにアップロードして、log.htmはのパーミッションは666に。

っていう三つのことをやらないと動きませんです。
オイラ含む、HTML程度の厨房のために書いときまし。
01337002/02/10 23:52ID:ze1rKgZU
出来たです!!

えーと、
$msgg="$msg<BR>"; この部分てのは、
log.htmの中でログとして書き込まれるときに
改行しとくってことだよね。
それもやりつつ、
print("$bbs[$i] <br>\n");
printするときも改行っていう解釈でよろしゅうございましょうか?

とすると、for($i=0;$i<5;$i++)
これって、五回forの中を繰り返すって言う意味でしたよね?
だったら最新の5行を表示ってことなのかなと思ったんですけど。
違うのかな?
0134ミニ弐編 ◆exvx.LWc 02/02/10 23:57ID:mVUXJnyg
>>133
>print("$bbs[$i] <br>\n");
>printするときも改行っていう解釈でよろしゅうございましょうか?
あ、ごめんコピペして消し忘れてた<br>\nここはいらないや、、
>for($i=0;$i<5;$i++)
>これって、五回forの中を繰り返すって言う意味でしたよね?
>だったら最新の5行を表示ってことなのかなと思ったんですけど。
>違うのかな?
う〜んfile関数で配列に埋め込まれたのを5番まで呼び出すって事です
じゃぁ寝るんで、オヤスミ明日もきてくれや〜
01357002/02/10 23:59ID:ze1rKgZU
5番まで、、、
何がどう5番なのかチトーモわかりませんので、勉強してみます。
姫、乙でした。
0136名無しさん@お腹いっぱい。02/02/11 00:38ID:???
う、、、いじってみたらリロードする度に書きこまれるキチガイスクリプトができた・・・
0137名無しさん@お腹いっぱい。02/02/11 00:45ID:???
>>131>>134
$msgg="$msg<BR>";
じゃなくて
$msgg="$msg\n";
な。
<br>だとログファイル内で改行されないので
file($fp);
で読み込めない。
70が改行できてないのは$bbsの中身が$bbs[0]しかないからだと思われ
0138名無しさん@お腹いっぱい。02/02/11 00:59ID:???
ちなみに
ほげ
弐編姫
あばば
と書き込んだ場合、

frwite($fp, $msg);
で書き込むとログファイルの中身は
ほげ弐編姫あばば
出力は
ほげ弐編姫あばば

$msg="msg<br>";
frwite($fp, $msg);
で書き込むとログファイルの中身は
ほげ<br>弐編姫<br>あばば
出力は
ほげ
弐編姫
あばば

となる。
ちなみに両方ともforは一度しか実行されない。
0139名無しさん@お腹いっぱい。02/02/11 01:01ID:???
>>138
訂正。
$msg="msg<br>";
→$msg="$msg<br>";
01407002/02/11 01:10ID:EU7Zm1l2
あれ?139さんの言うとおりしたら8行目がエラーになったよ。
http://kkkkk.s4.xrea.com:8080/nihen/bbs.php
で、ソースが
<FORM method="POST" action="bbs.php">
<INPUT size="20" type="text" name="msg"><INPUT type="submit" value="送信"></FORM>
↓最新カキコ5件↓<br>
<?php
$fl = "log.htm";
$filename = fopen("$fl","a+");
$msg="$msg<br>";
frwite($fp, $msg);
fclose($filename);
$bbs=file("$fl");
for($i=0;$i<5;$i++)
{
print("$bbs[$i]");
}
?>
01417002/02/11 01:11ID:EU7Zm1l2
あ、わかった。ゴメ。スペル間違い!
0142名無しさん@お腹いっぱい。02/02/11 01:12ID:???
>>140
$filename = fopen("$fl","a+");

$fp = fopen("$fl","a+");
にしろ。
01437002/02/11 01:13ID:EU7Zm1l2
スペル直してもまだエラー。何故かいな?
0144名無しさん@お腹いっぱい。02/02/11 01:14ID:Sk1XO/tj
$fp = fopen($fl , "a+");
これじゃいかんのですか?
0145名無しさん@お腹いっぱい。02/02/11 01:16ID:???
fclose($filename);

fclose($fp);
にしろ。
01467002/02/11 01:18ID:EU7Zm1l2
ありがと>>139,>>144
出来た模様です。
そして、136さんのようにリロードすると同じのが書き込まれるという
ステキスクリプトになっているのでどうにかしたい気持ちです。
0147名無しさん@お腹いっぱい。02/02/11 01:21ID:Sk1XO/tj
↑で指摘されてるように、
書き込むデータの改行を<br>じゃなくて\nにしないと
読み込んだときに複数データとしてばらしてもらえないよ。
それが証拠に5行以上表示されてるでしょ?
つまりforが機能していない。
$bbs[0]に全部のデータが1行で格納されちゃってます。
01487002/02/11 01:32ID:EU7Zm1l2
単純にコレ
$msg="$msg\n";
だけじゃダメみたいですな。
0149名無しさん@お腹いっぱい。02/02/11 01:32ID:Sk1XO/tj
リロードで書き込ませたくなければ・・・
ヒント
1:HTMLフォームの、nameが変数名に、valueが変数の値となる。
2:リロードの際は送信ボタンは押されない
3:一番最初にやった条件分岐を使う
やってみよう。
0150名無しさん@お腹いっぱい。02/02/11 01:36ID:Sk1XO/tj
>>48
HTMLは<br>がないと改行されない。
ファイルは\nがないと改行されない。
だから両方入れればよい。
ファイル書き込みの際に\nを入れて、
HTML表示のprint()のときに<br>を入れる。
これがスマートなんかな。
ファイルに<br>書き込んじゃってもいいけどね。
01516802/02/11 01:41ID:6dXkTmoo
苦労してるなぁ。
PHPの場合は
<?=$value?><br>
がスマートっぽい
0152名無しさん@お腹いっぱい。02/02/11 01:42ID:???
なるほど。できた。
http://s7.xrea.com:8080/~readcgi/nihen/ex.php
01537002/02/11 01:48ID:EU7Zm1l2
>>150さんのやりかたで改行は出来たけど再読み込み処理が出来ないよん。
ただいま修行中。
0154名無しさん@お腹いっぱい。02/02/11 01:59ID:???
ちなみに、
test.php
と一緒に
test.phps(中身はtest.phpと同じ)
ってファイルを作ってアップロードしておくとweb上からtest.phpのソースが参照できるよ。
0155名無しさん@お腹いっぱい。02/02/11 03:03ID:???
再読み込み処理って何のこと?
01567002/02/11 03:06ID:KsEpt+eD
再読み込みつか、リロードしても書き込まれない処理、のことでした。
ゴメソ。
0157名無しさん@お腹いっぱい。02/02/11 03:24ID:???
ファイルに書き込む処理を、送信ボタンが押されたときのみにすればいい。
たぶん今は呼び出されるたびに書き込むようになってるんじゃない?
それだとリロードどころか最初に呼び出したときにも空文字書き込んでると思うよ。
0158名無しさん@お腹いっぱい。02/02/11 03:33ID:???
トリップできた、、
0159ミニ弐編 ◆exvx.LWc 02/02/11 18:24ID:QjQTA6MD
とりあえず処理とhtmを一緒にしないかifを使うか?
これで改行をかいれタンだけど、、どうかな?ドキドキ
<HTML>
<BODY>
<FORM method="POST" action="bbs.php"><INPUT size="20" type="text" name="msg"><INPUT type="submit" value="送信"></FORM>
<?php
if($submit=$msg)
{
$fl = "log.htm";
$filename = fopen("$fl","a+");
fwrite($filename,$msg."\n");
fclose($filename);
$bbs=file("$fl");
}
for($i=0;$i<5;$i++)
{
print("$bbs[$i]<BR>");
}
?>
</BODY>
</HTML>
0160ミニ弐編 ◆exvx.LWc 02/02/11 18:25ID:QjQTA6MD
あれごめん書き込みのいちおかしいや、治してうpする
↑は無視して
0161ミニ弐編 ◆exvx.LWc 02/02/11 22:23ID:QjQTA6MD
あれ基礎的なこと色々わすれてるや〜、じゃあ今日は休みで
基礎から俺も勉強しなおしてくるんで、明日、明後日再開です


          ご め ん な
0162名無しさん@お腹いっぱい。02/02/11 23:11ID:V4D6aage
うぃ。がんばって。
0163名無しさん@お腹いっぱい。02/02/11 23:36ID:W/lrEjt/
つーか勉強できるような日じゃなかったしね・・・
そーす。
http://s7.xrea.com:8080/~readcgi/nihen/source.php?ex.php
0164名無しさん@お腹いっぱい。02/02/12 00:48ID:???
<HTML>
<BODY>
<FORM method="POST" action="bbs.php">
<INPUT size="20" type="text" name="msg">
<INPUT name="submit" type="submit" value="送信">
</FORM>
<?php
if($submit=="送信")
{
$filename = "log.htm";
$fp = fopen($filename ,"a+");
fwrite($fp,$msg . "\n");
fclose($fp);
$bbs=file($filename);
}
for($i=0;$i<5;$i++)
{
print("$bbs[$i]<BR>");
}
?>
</BODY>
</HTML>

これでどうかな?
ちょっと今動作確認できる環境が手元にないんで確認できないんだが。
ミスってたらごめん。
おそらく159の意図どおりリロードで書き込まないようになってると思う。
ただこれだと最新5件じゃなくて最初の5件にならない?
追記モードって確か最後に付け足すんじゃなかったっけ。
最新5件にするにはforの部分を少しいじらなきゃいけないな。
0165名無しさん@お腹いっぱい。02/02/12 01:25ID:???
>>164
それだとリロードするとlogの内容も取得できなくない?
<HTML>
<BODY>
<FORM method="POST" action="bbs.php">
<INPUT size="20" type="text" name="msg">
<INPUT name="submit" type="submit" value="送信">
</FORM>
<?php
if($submit=="送信")
{
$filename = "log.htm";
$fp = fopen($filename ,"a+");
fwrite($fp,$msg . "\n");
fclose($fp);
}
$bbs=file($filename);
$bbs=array_reverse($bbs);
for($i=0;$i<5;$i++)
{
print("$bbs[$i]<BR>");
}
?>
</BODY>
</HTML>
でリロードの場合投稿されず&最新の5件を表示になると思う。
0166ミニ弐編 ◆exvx.LWc 02/02/12 16:24ID:GZCCMcX5
>>165
ありがと、やり方忘れてた、感謝〜〜!!!!
わかり易いようにソース書き直したけどいいのかな??
解説
<?php
$fl="log.htm";
if($msg)
{
$fp=fopen("$fl","a+");
fwrite($fp,$msg."\n");
fclose($fp);
}
$bbs=file($fl);
$bbs=array_reverse($bbs);←array_reverseっていう関数は
配列を逆にして返すって意味ね
for($i=0;$i<5;$i++)
{
print("$bbs[$i]<BR>");←それで逆から読みだしてる
}
?>
次回とう言うか今日だが本格的にテーブル等を使い掲示板を作る!
0167名無しさん@お腹いっぱい。02/02/12 16:26ID:???
おお、楽しみだ
0168名無しさん@お腹いっぱい。02/02/12 16:53ID:???
がんばれよ!
■ このスレッドは過去ログ倉庫に格納されています