弐ch編集のphp講座
■ このスレッドは過去ログ倉庫に格納されています
0001弐ch編集
02/02/05 18:40ID:???print("始まり");
?>
これでいいです
0065名無しさん@お腹いっぱい。
02/02/09 11:31ID:+O+0cTm9echo date("t");
セッションの値は?
session_start();
$HTTP_SESSION_VARS;
>64
すげぇ楽だよ
CPANみたいなモジュールが無くても楽なとこ。
0066名無しさん@お腹いっぱい。
02/02/09 18:11ID:J4iKrCyX0067プチ弐ch編者 ◆exvx.LWc
02/02/09 19:12ID:S5to8xHmいやここからコピペしたんだけど、、、
あんた正確がめついね、そんなに人に得されんのが嫌なの?笑い
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/php-books.html
>>61
指摘ありがと、でも次から俺がミスしたら訂正って言う形で協力
してくれんのが一番みんな楽しいと思うんでよかったら協力してくらはい
>>64
最高だよマジでphpはwebprog専用言語だから便利な関数いっぱい
お父さんはperlだけど、兄はRubyです
今日は受験だったんで講座は無しでした、明日やるね。
あと俺は弐編の双子の子供の弟2ch編集です
0068名無しさん@お腹いっぱい。
02/02/09 21:04ID:???if(DB::isError($db=DB::connect($dsn)))
die(DB::errorMessage($db));
if(DB::isError($res=$db->query($sql)))
die(DB::errorMessage($res)." :$sql");
while($rows=$res->fetchRow(DB_FETCHMODE_ASSOC))
foreach($rows as $field => $value)
echo "$field -> $value<br>\n";
$db->disconnect();
0069プチ弐ch編者 ◆exvx.LWc
02/02/09 21:28ID:S5to8xHmうわ〜んそんな深いとこじゃなくて、もっと違う事教えてあげてYO〜
じゃあfopen関数でファイルの読み出し明日教えるので
for使うから教えてあげといてくれや〜
0070名無しさん@お腹いっぱい。
02/02/09 22:24ID:nOl88oBF0071プチ弐ch編者 ◆exvx.LWc
02/02/09 22:48ID:S5to8xHmOK!暇ができたんでな。
例えば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回繰り返し表示したら止まるスクリプトを書こう!
007270
02/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
for($i=0;$i<5;i++) {
print("php<br>");
}
?>
0075
02/02/10 00:34ID:c7L2QbWR$i=5;
for(;;){
if(!$i--) break;
print "test<br>\n";
}
?>
0076名無しさん@お腹いっぱい。
02/02/10 00:39ID:???$i=5;
for($i--){
print "test<br>\n";
}
?>
0077名無しさん@お腹いっぱい。
02/02/10 00:44ID:???$i++;より++$i;の方が若干処理が早くなるらしい
$arr = array("test","test","test","test","test");
for( ;list($key,$val)=each($arr); )
print $val."<BR>\n";
?>
0079名無しさん@お腹いっぱい。
02/02/10 00:47ID:???$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:???008268
02/02/10 00:53ID:???<?php
$arr = array("test","test","test","test","test");
foreach($arr as $val)
print $val."<BR>\n";
?>
008368
02/02/10 00:56ID:???whileだけでループ処理はOKじゃない?
$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:???おれもWhileを多用する。forは使わない。
今日からPHPをはじめた。
Professional PHP Programingを187Pまでよんだ。
C言語ぽくてPerlより分かりやすいね。
ところで、foreach()ってPHP4からの関数?
http://www.entropy.ch/
できるんじゃないの?
008868
02/02/10 01:04ID:???<?php
for($i=0; $i < 10; ++$i){
for($j=0; $j < 10; ++$j)
printf("%3d", $i*$j)
print "\n";
}
?>
008968
02/02/10 01:08ID:???そういやforeach()ってPHP3じゃ使えないみたい。
関数ではなくifやwhileみたいな制御構造だけど。
009086
02/02/10 01:11ID:???Profesional PHP Programingって本に載ってなかったから
そうかなと思った。
PHP4はマニュアルだけでいいかなと思って、この本しか買わなかった。
0091名無しさん@お腹いっぱい。
02/02/10 01:17ID:???正解。
PHP4から。
まあ、今からやるなら4のが良いんだろうな。
>40
正直PEARに関する資料少なくて萎えてる。
わかりやすく解説してる所あれば良いのだけど。
009268
02/02/10 01:28ID:???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)
--------------------------------------------------------------------------------
0095名無しさん@お腹いっぱい。
02/02/10 01:48ID:???009668
02/02/10 01:49ID:???ただ、他の言語(C,VB,C++,perl)辺りは入門書程度しかできん。
009786
02/02/10 01:58ID:???仕事でCGI作ってもC言語だからPerlも使わないな。
0098名無しさん@お腹いっぱい。
02/02/10 02:31ID:???面白そうだからちょっとやってみようかなぁ・・・
0099名無しさん@お腹いっぱい。
02/02/10 02:56ID:lc6ei33bあれなかなか便利だよ。
あとMacでPHPだけど、
OS Xなら>>87のページにいって
説明どおりにインストールすればできる。
というか、ボタン1つでApacheが起動するOS Xで
PHPを使わないでどうしますか。
UNIXの勉強にもなるよ。
0100名無しさん@お腹いっぱい。
02/02/10 10:55ID:???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:???010386
02/02/10 15:04ID:???0104ミニ弐編 ◆exvx.LWc
02/02/10 15:10ID:mVUXJnygあの〜ファイルを読み出して表示する事だよ、だから今日は掲示板作るの
0105名無しさん@お腹いっぱい。
02/02/10 15:27ID:???0106名無しさん@お腹いっぱい。
02/02/10 18:05ID:yVc1VLa3test.phpにアクセスしようとすると<?phpinfo();?>って表示されちゃう。
ムキー
0107ミニ弐編 ◆exvx.LWc
02/02/10 18:33ID:mVUXJnygとりあえずhtmが動くか試してみて、それでhtmが動いたら
教えて
0108106
02/02/10 18:35ID:???逝ってきます。
0109106
02/02/10 18:37ID:???あ・・ミニ弐編さんのレスがついてる。すんません。
htmlは動いたんで、あれこれいじってたら動きました。
0110ミニ弐編 ◆exvx.LWc
02/02/10 18:40ID:mVUXJnyg準備できたんだー!良かったら過去ログ読んで参加してく〜れや〜
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あれ?PHPの配列って1からスタートなんだ。
他の言語みたいに0からじゃないのか。
0114ミニ弐編 ◆exvx.LWc
02/02/10 21:25ID:mVUXJnygスマンミスった、すいません配列はphpでも0からです
0115名無しさん@お腹いっぱい。
02/02/10 21:40ID:???できたできた。
0116ミニ弐編 ◆exvx.LWc
02/02/10 21:42ID:mVUXJnyg(・∀・)イイ!
受験終わったんで
毎日講座やるからその調子でがんばれよ〜な〜。
じゃぁ!
0117名無しさん@お腹いっぱい。
02/02/10 21:47ID:???$zenhitei=fopen("$megabbs",a);
2文字以上はダブルクオーテーションで囲むのね。
0118ミニ弐編 ◆exvx.LWc
02/02/10 21:56ID:mVUXJnygいや別にどっちでもよかったような、、
ミスとか少しでも疑問に思ったら質問くらへ〜
0119名無しさん@お腹いっぱい。
02/02/10 21:59ID:???外したら
Parse error: parse error in /どこか/bbs.php on line 3
だって。
0120satoshi@DGW ◆7m/R4F..
02/02/10 22:06ID:???0121名無しさん@お腹いっぱい。
02/02/10 22:08ID:???ヽ(`Д´)ノダメ!スレ立テテヤッテクレ。
0122名無しさん@お腹いっぱい。
02/02/10 22:08ID:???0123名無しさん@お腹いっぱい。
02/02/10 22:15ID:???012468
02/02/10 22:15ID:???fopen()の戻り値はファイルハンドルだから$filenameよりは
$fhandle,$fhとかCの参考書みたく$fpみたいな感じにした方が誤解ないと思うよー
0125ミニ弐編 ◆exvx.LWc
02/02/10 22:24ID:mVUXJnygサンクス!またミスやそれはチョット、、って言うのあったら指摘お願い
暇があったらまだ教えてない簡単なとこ教えてあげてくらはい。
>>120
マジレスして悪いがここはphpがどんなもんか知りたい人が来てるんだから
やめてくれ。
あと本当お前って自分に酔ってんな、笑い
じゃぁ!
0126ミニ弐編 ◆exvx.LWc
02/02/10 22:27ID:mVUXJnygあれ?どうだっけ、、自分でもあんま覚えて無いや、悪い
じゃあ""これ付けないと駄目って事にしといてください(;;)
0127名無しさん@お腹いっぱい。
02/02/10 22:29ID:???0128名無しさん@お腹いっぱい。
02/02/10 22:56ID:lc6ei33bマニュアルには1文字でも囲むように例示してあるから
囲っといた方がいいのではないかと。
それより、その前の、ファイルの場所が気になる。
変数だけなんだったら囲わないんじゃないかな。普通。
ま、好みだからいいけどさ。たぶんちゃんと動くし。
0129名無しさん@お腹いっぱい。
02/02/10 23:31ID:FjGWYD+b連想配列の添え字は""いらないけど。
013070
02/02/10 23:37ID:IYQ42XDNhttp://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こんな感じ?違ったら詳しく説明きぼぬ。
<?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");
}
?>
013270
02/02/10 23:44ID:IYQ42XDN112のミニ弐編姫のソースの部分を、bbs.phpっていうファイル名で保存して、
同時にログ書き込み用のlog.htmを0byteの中身空っぽ状態で作成。
で、二つを同じところにアップロードして、log.htmはのパーミッションは666に。
っていう三つのことをやらないと動きませんです。
オイラ含む、HTML程度の厨房のために書いときまし。
013370
02/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>print("$bbs[$i] <br>\n");
>printするときも改行っていう解釈でよろしゅうございましょうか?
あ、ごめんコピペして消し忘れてた<br>\nここはいらないや、、
>for($i=0;$i<5;$i++)
>これって、五回forの中を繰り返すって言う意味でしたよね?
>だったら最新の5行を表示ってことなのかなと思ったんですけど。
>違うのかな?
う〜んfile関数で配列に埋め込まれたのを5番まで呼び出すって事です
じゃぁ寝るんで、オヤスミ明日もきてくれや〜
013570
02/02/10 23:59ID:ze1rKgZU何がどう5番なのかチトーモわかりませんので、勉強してみます。
姫、乙でした。
0136名無しさん@お腹いっぱい。
02/02/11 00:38ID:???0137名無しさん@お腹いっぱい。
02/02/11 00:45ID:???$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:???訂正。
$msg="msg<br>";
→$msg="$msg<br>";
014070
02/02/11 01:10ID:EU7Zm1l2http://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]");
}
?>
014170
02/02/11 01:11ID:EU7Zm1l20142名無しさん@お腹いっぱい。
02/02/11 01:12ID:???$filename = fopen("$fl","a+");
を
$fp = fopen("$fl","a+");
にしろ。
014370
02/02/11 01:13ID:EU7Zm1l20144名無しさん@お腹いっぱい。
02/02/11 01:14ID:Sk1XO/tjこれじゃいかんのですか?
0145名無しさん@お腹いっぱい。
02/02/11 01:16ID:???も
fclose($fp);
にしろ。
014670
02/02/11 01:18ID:EU7Zm1l2出来た模様です。
そして、136さんのようにリロードすると同じのが書き込まれるという
ステキスクリプトになっているのでどうにかしたい気持ちです。
0147名無しさん@お腹いっぱい。
02/02/11 01:21ID:Sk1XO/tj書き込むデータの改行を<br>じゃなくて\nにしないと
読み込んだときに複数データとしてばらしてもらえないよ。
それが証拠に5行以上表示されてるでしょ?
つまりforが機能していない。
$bbs[0]に全部のデータが1行で格納されちゃってます。
014870
02/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/tjHTMLは<br>がないと改行されない。
ファイルは\nがないと改行されない。
だから両方入れればよい。
ファイル書き込みの際に\nを入れて、
HTML表示のprint()のときに<br>を入れる。
これがスマートなんかな。
ファイルに<br>書き込んじゃってもいいけどね。
015168
02/02/11 01:41ID:6dXkTmooPHPの場合は
<?=$value?><br>
がスマートっぽい
0152名無しさん@お腹いっぱい。
02/02/11 01:42ID:???http://s7.xrea.com:8080/~readcgi/nihen/ex.php
015370
02/02/11 01:48ID:EU7Zm1l2ただいま修行中。
0154名無しさん@お腹いっぱい。
02/02/11 01:59ID:???test.php
と一緒に
test.phps(中身はtest.phpと同じ)
ってファイルを作ってアップロードしておくとweb上からtest.phpのソースが参照できるよ。
0155名無しさん@お腹いっぱい。
02/02/11 03:03ID:???015670
02/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これで改行をかいれタンだけど、、どうかな?ドキドキ
<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↑は無視して
0161ミニ弐編 ◆exvx.LWc
02/02/11 22:23ID:QjQTA6MD基礎から俺も勉強しなおしてくるんで、明日、明後日再開です
ご め ん な
0162名無しさん@お腹いっぱい。
02/02/11 23:11ID:V4D6aage0163名無しさん@お腹いっぱい。
02/02/11 23:36ID:W/lrEjt/そーす。
http://s7.xrea.com:8080/~readcgi/nihen/source.php?ex.php
0164名無しさん@お腹いっぱい。
02/02/12 00:48ID:???<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の部分を少しいじらなきゃいけないな。
■ このスレッドは過去ログ倉庫に格納されています