弐ch編集のphp講座

このエントリーをはてなブックマークに追加
1弐ch編集
まず最初は<?php
print("始まり");
?>
これでいいです
2名無しさん@お腹いっぱい。:02/02/05 18:46 ID:???
3名無しさん@お腹いっぱい。:02/02/05 18:47 ID:???
<?php phpinfo(); ?>
4弐ch編集:02/02/05 18:50 ID:H7pe8IqQ
じゃあ次は条件判断してみよう!
if($hoge="hoge")
{
print("正解");
}
{
print("残念");
}
解説
if(式)これがあうと正解が返され違うと残念が返されます
5名無しさん@お腹いっぱい。:02/02/05 18:53 ID:???
ほう。elseとかいらないのか。
6名無しさん@お腹いっぱい。:02/02/05 18:54 ID:???
丁度いい。perlもphpも分からんから教えてもらおう。
7名無しさん@お腹いっぱい。:02/02/05 19:07 ID:???
PHPは、PHP: Hypertext Preprocessor の略
8名無しさん@お腹いっぱい。:02/02/05 19:10 ID:???
続きは?
9名無しさん@お腹いっぱい。:02/02/05 19:55 ID:???
PHPの読み方は「ピップ」
有名なのは「エレキ版」かな
10名無しさん@お腹いっぱい。:02/02/05 20:02 ID:???
あなたは
if(!$A)
{
  echo "A";
}
派ですか?私は
if(!$A){
  echo "A";
}
派です。
11ダメ板住人:02/02/05 20:05 ID:???
「匹夫」
12名無しさん@お腹いっぱい。:02/02/05 20:43 ID:???
飽きっぽいにも程があるぞ(ワラ
13名無しさん@お腹いっぱい。:02/02/05 20:59 ID:???
PHPに変えてからというもの
めっきりボールが飛ばなくなりました。
どうしたらいいですか?
14名無しさん@お腹いっぱい。:02/02/05 21:00 ID:???
ただでさえ人少ないのにPHP質問スレ分散させんなボケ。

-----------------------終了-----------------------
15名無しさん@お腹いっぱい。:02/02/05 21:14 ID:???
今までの僕はまさに貧弱な男の見本だった。
しかしPHPを(以下略
16名無しさん@お腹いっぱい。:02/02/05 21:52 ID:zxNVBI/n
素朴な疑問
>PHPは、PHP: Hypertext Preprocessor の略
HypertextのHとPreprocessorのPでHPと略すのが妥当じゃないのか?
17名無しさん@お腹いっぱい。:02/02/05 22:03 ID:???
元々はパーソナルホームページの略だったから。
1816:02/02/05 22:41 ID:zxNVBI/n
>>17
thanks

Personal Home Page 

ホームページつーことでさらにphpが易しく感じられる。
19名無しさん@お腹いっぱい。:02/02/06 00:42 ID:???
20名無しさん@お腹いっぱい。:02/02/06 04:10 ID:yTmx27Jy
<? phpinfo(); ?>
21弐ch編集:02/02/06 07:38 ID:p89uaktq
ああごめんelse入れんの忘れてた、また2けんにネタにされる、、、、
じゃあ次はファイル操作
$hoge="log.txt"
fopen("$hoge","r")
これでlog,txt使えるようになんのよ
22_:02/02/06 08:55 ID:???
_
23名無しさん@お腹いっぱい。:02/02/06 09:35 ID:???
>>4
$hoge = "hoge"

Perlじゃ=は代入演算子だが、PHPは比較演算子なんだな。}
24名無しさん@お腹いっぱい。:02/02/06 13:35 ID:???
>>21
なにいってんだよ
「弐ch編者=zenhitei」だろ、、アホクサ
巣へ帰れ!
25弐ch編集:02/02/06 17:45 ID:KY6rK/FB
あんま寝てないからいろいろ間違いだしちゃうや、、
宿題カウンタを作ってみよう!
26名無しさん@お腹いっぱい。:02/02/06 17:47 ID:???
いきなりかょ、、、
もっと基本からちゃんと教えてくれぃ
27名無しさん@お腹いっぱい。:02/02/06 19:40 ID:MKjyF60u
#!/usr/bin/perl
use strict;
open(IN,"count.dat") or die $!;
my $count = <IN>;
close IN;
unless $count{
print "0";
exit;
}
$count++;
open(OUT,">count.dat") or die $!;
print OUT $cout;
close OUT;
print $cout;

__END__
28弐ch編集:02/02/06 19:47 ID:KY6rK/FB
>>26 OK!
phpは <?php が始まり宣言 ?> が終了宣言
とりあえず何かを表示さしてみようって事でprtint("表示させたい物");
で何かを表示させます。
宿題
prirntを使いmegabbsと表示させてみろ
宿題見てやるから

次回
条件判断してみよう
29名無しさん@お腹いっぱい。:02/02/06 20:01 ID:???
恥知らずって居るんだねえ・・・  
30名無しさん@お腹いっぱい。:02/02/06 20:26 ID:???
先生!厨房質問なんですが、
phpって動作させるとき、perlで書かれたcgiと同じようにパーミッションを設定したらいいの?
あと、拡張子は.phpでいいの?
31弐ch編集:02/02/06 20:43 ID:???
>>29
すまん疲れてて間違えてしまった
みなさん正確にはprintです。
>>30
パーミッションはCGIと同じようにでいいよ、拡張子はphpでね!
32名無しさん@お腹いっぱい。:02/02/06 21:19 ID:???
<?php
print("megabbs");
?>

ここまでは大丈夫。
てか、phpって644でいいんじゃない?
33弐ch編集:02/02/06 21:35 ID:KY6rK/FB
>>32
じゃ次、$megabbsが弐編だった場合にわーいと返す処理
$←これ変数マーク、変数とは箱みたいなもんだよ
<?php
$megabbs="弐編";
if($megabbs="弐編")
{
print("わーい");
}
else
{
print("うわーん");
}
?>
解説
まず1行目$megabbsに文字列弐編が代入される
そしてif関数(括弧内の式が合うとTrueが返され間違えるとファールだったけ?が返される)
それによってわーいが返されるわけだ
宿題
$megabbsがzenhiteiだった場合まずーと表示され
違う場合わーいと表示されるスクリプト書いてみ
34名無しさん@お腹いっぱい。:02/02/06 21:49 ID:???
<?php
$megabbs="zenhitei";
if($megabbs="zenhitei"){
print("まずー");
} else {
print("わーい");
}
?>
OK、OK!着いて逝けそう。
35弐ch編集:02/02/06 22:27 ID:KY6rK/FB
>>34
イイ!

じゃ次ね本当は正規表現とか配列変数やりたいけどあれは
楽しくないから作りながら覚えていこうって事で。

フォーム+ファイル操作
これとフォームがわかると何でもできるようなもん
<HTML>
<BODY>
<FORM method="POST" action="nihen.php"><INPUT size="20" type="text" name="msg"><INPUT type="submit" value="送信"></FORM>
</BODY>
</HTML>
とりあえずファイル操作は少し後にしてフォームから投稿されたのを表示
さしてみよう!って事ではじめます
action="nihen.php"ここはnihen.phpファイルを動かすって事です
name="msg"これは投稿された文字が変数$msgに格納されんのよ
という事は!!!
nihen.phpファイルに
<?php
print("$msg");
?>
これで投稿された文字列が表示されたらOK!
次はファイル操作、次覚えればここまでの力だけでほとんど簡単
な事ならできるようになるから。
じゃ寝る
36名無しさん@お腹いっぱい。:02/02/06 22:39 ID:???
=====forn.html=========
<HTML>
<BODY>
<FORM method="POST" action="zenhitei.php">
<INPUT size="20" type="text" name="msg" value="zenhitei">
<INPUT type="submit" value="送信"></FORM>
</BODY>
</HTML>
=====zenhitei.php======
<?php
print("$msg");
?>
ほうほう。phpって、Content-typeとかっているのかな?
37名無しさん@お腹いっぱい。:02/02/06 22:39 ID:???
おやすみ。
38名無しさん@お腹いっぱい。:02/02/06 22:57 ID:/Isz0QEE
良スレage
39名無しさん@お腹いっぱい。:02/02/06 22:58 ID:???
>>38
目を覚ませ
40名無しさん@お腹いっぱい。:02/02/06 23:05 ID:???
PEAR講座やってくれんかなぁ
41名無しさん@お腹いっぱい。:02/02/06 23:11 ID:???
最近自分専用スレ立てるのが流行ってんの?
42名無しさん@お腹いっぱい。:02/02/06 23:14 ID:???
荒らし・煽りの勉強スレ認定
厨房寄っておいで!
43名無しさん@お腹いっぱい。:02/02/07 00:39 ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < うるせー馬鹿!
   \|   \_/ /  \_____
     \____/
44名無しさん@お腹いっぱい。:02/02/07 03:03 ID:wNhvjL7V
>>34
ためしに2行目を
$megabbs = "baka";
にしてみ。
どうなるでしょうか。宿題。
45名無しさん@お腹いっぱい。:02/02/07 16:58 ID:BDWBFwZj
今日も教えてくださいage
46名無しさん@お腹いっぱい。:02/02/07 18:03 ID:???
>>44
<?php
$megabbs="baka";
if($megabbs="zenhitei"){
print("まずー");
} else {
print("わーい");
}
?>

つまり、わーい?
47弐ch編集 ◆exvx.LWc :02/02/07 19:04 ID:C78kP3S0
>>46
OK!
おし、じゃあ今日もはじめるね。
明日は用事があるから無しでね(∵)b

ファイル操作 〜投稿されたのを自分のファイルに書きこんでみよう〜

まずファイルを扱うにはfopen関数を使いファイルを開かなければなりません
と言う事でこのまえ教えたフォームだします
<FORM method="POST" action="nihen.php"><INPUT size="20" type="text" name="msg"><INPUT type="submit" value="送信"></FORM>
そしてnihen.phpの中身
<?php
$megabbs="nihen.txt";
$zenhitei = fopen("$megabbs",a);
fwrite($zenhitei,$msg);
fclose($zenhitei);
?>
解説
1行目
$megabbsにnihen.txt入れる
2行目
$zenhiteiにfopen関数で開けた$megabbsを代入している
このaと言うのは種類みたいなもんで今は気にすんな、後から詳しく教える
3行目
fwrite関数というので$zenhiteiに$msgを書きこんでるんだ
fwrite(書き込む対象,書き込まれる対象);
4行目
fopenで開けたんだから閉める決まりがあると覚える
 
これでnihen.txtを覗いたら投稿された文字がはいってはずだ
宿題
これを暗記し苦もなく使えるようにする
次回
書き込みができたのでそれを読み出して表示させちゃおう!
48弐ch編集 ◆exvx.LWc :02/02/07 19:10 ID:C78kP3S0

急いで作ったんでバグあるかもしんないが許して!
番外編ftpにうpしないでphpの練習をする
http://jp.php.net/do_download.php?download_file=php-4.1.1-Win32.zip
ここでダウンロードして
Zipを適当な場所に解凍します。(例:c:\php)
c:\php\php4ts.dll を c:\WINNT\System32(98ならc:\Windows\System)にコピーします。
c:\php\php.ini-dist を php.ini にリネームして
c:\WINNT(98ならc:\Windows) にコピーします。

http://www.st.rim.or.jp/~nakata/
ここからhttpdを落とす
タスクバーに黄色いアイコンが出るので、「右クリック」→「オプション一般(G)」を開きます
ドキュメントルート、すなわちPHPを動かすホームディレクトリを設定します。
次に拡張子のところの「追加」をクリック
実行プログラム」にc:\php\php.exe を指定
動作確認してみましょう

まず <?phpinfo();?> と書いたテキストファイル test.php を用意して、設定したドキュメントルート(私の場合 D:\php)に置きます。

http://127.0.0.1/test.php

ここにアクセスして↓のようなのが出れば PHPが動いてます。やったね
もしエラーが出るなら、とりあえず普通のHTMLが見れるか試してみてください
ここをパクッタだけなんだけどね
http://php.s3.to/tt/inst1.php
49名無しさん@お腹いっぱい。:02/02/07 19:26 ID:???
<?php
$megabbs="nihen.txt";
$zenhitei=fopen("$megabbs",a);
fwrite($zenhitei,$msg);
fclose($zenhitei);
?>

おーし。とりあえず4回くらい見ないで書いてみたぞ。
あ、番外編は既にApache+php4組みこんであるわ(^_^;)
50名無しさん@お腹いっぱい。:02/02/07 19:45 ID:???
動作確認も終わったー
51名無しさん@お腹いっぱい。:02/02/07 20:22 ID:???
>>46
それ実際動かしてみ。
どうなるでしょうか。宿題。
52名無しさん@お腹いっぱい。:02/02/07 20:25 ID:???
53弐ch編集 ◆exvx.LWc :02/02/07 20:34 ID:???
>>49
>>50
後は表示されるようにするの覚えると、
いろいろ作って遊べば自己流で覚えていけるんでがんばれよー。
明日は無理だから明後日から再開するんでよく復習しといてね。
じゃ寝る

番外編2〜おすすめ参考書籍〜
俺が買ったphp本
http://www.amazon.co.jp/exec/obidos/ASIN/4871938735/ruihirokaspag-22/250-8045648-8564212
これがあれば簡単に基礎を覚えられる
http://www.amazon.co.jp/exec/obidos/ASIN/4798101338/ruihirokaspag-22/249-6096838-3978741
これでいくらでも自分をレベルアップさせてけるんでお勧め
http://www.amazon.co.jp/exec/obidos/ASIN/4873110343/ruihirokaspag-22/250-2514055-8958600
安いんで本屋に今日予約してきた、一冊あればいいと思う
54名無しさん@お腹いっぱい。:02/02/07 20:36 ID:???
おやすみー
55名無しさん@お腹いっぱい。:02/02/07 20:39 ID:???
オライリー本以外は高いのばっか、、、
56名無しさん@お腹いっぱい。:02/02/07 21:11 ID:???
弐ch編者=弐ch編集?
57名無しさん@お腹いっぱい。:02/02/07 21:14 ID:???
たぶんそう。
58名無しさん@お腹いっぱい。:02/02/08 01:57 ID:???
本なんかいらねぇだろ。
ここさえあれば十分
ttp://www.php.net/manual/ja
59名無しさん@お腹いっぱい。:02/02/08 18:20 ID:9y/TltT1
>>53
全部、もってるよ…
60名無しさん@お腹いっぱい。:02/02/08 18:42 ID:???
>>53
そのリンクアソシエイトプログラムのリンクだからそこクリックして買うと
弐編にお金が入っちゃうぞ!
だまされるな、気をつけろ。

ちなみに以下なら安心
番外編2〜おすすめ参考書籍〜
俺が買ったphp本
http://www.amazon.co.jp/exec/obidos/ASIN/4871938735
これがあれば簡単に基礎を覚えられる
http://www.amazon.co.jp/exec/obidos/ASIN/4798101338
これでいくらでも自分をレベルアップさせてけるんでお勧め
http://www.amazon.co.jp/exec/obidos/ASIN/4873110343
安いんで本屋に今日予約してきた、一冊あればいいと思う
61名無しさん@お腹いっぱい。:02/02/08 20:18 ID:uofJSFIl
ifの条件式で値を代入しちゃうやつの
薦める本なんて買えない。
62名無しさん@お腹いっぱい。:02/02/08 22:31 ID:yY+iajn/
こう ==
63名無しさん@お腹いっぱい。:02/02/08 23:43 ID:+xBDXmxV
例えば・・・

if ($temp = &handan) { print $temp; }

sub &handan {
if (!$in{'name'}) { $errormsg.='名前書けやオラ!'; }
if (!$in{'mail'}) { $errormsg.='Mailも使えんのか己は!'; }
return $errormsg;
}
64名無しさん@お腹いっぱい。:02/02/09 09:35 ID:T3f9HV6j
Perl/CGIより便利だってところを教えてくだぁさい。
65名無しさん@お腹いっぱい。:02/02/09 11:31 ID:+O+0cTm9
今月の末日は何日?
echo date("t");

セッションの値は?
session_start();
$HTTP_SESSION_VARS;

>64
すげぇ楽だよ
CPANみたいなモジュールが無くても楽なとこ。
66名無しさん@お腹いっぱい。:02/02/09 18:11 ID:J4iKrCyX
ダブルコーテーションのつけるつけないはどう違うの?
67プチ弐ch編者 ◆exvx.LWc :02/02/09 19:12 ID:S5to8xHm
>>60
いやここからコピペしたんだけど、、、
あんた正確がめついね、そんなに人に得されんのが嫌なの?笑い
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/php-books.html
>>61
指摘ありがと、でも次から俺がミスしたら訂正って言う形で協力
してくれんのが一番みんな楽しいと思うんでよかったら協力してくらはい
>>64
最高だよマジでphpはwebprog専用言語だから便利な関数いっぱい
お父さんはperlだけど、兄はRubyです


今日は受験だったんで講座は無しでした、明日やるね。
あと俺は弐編の双子の子供の弟2ch編集です
68名無しさん@お腹いっぱい。:02/02/09 21:04 ID:???
DBクラスの使い方...
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();
69プチ弐ch編者 ◆exvx.LWc :02/02/09 21:28 ID:S5to8xHm
>>68
うわ〜んそんな深いとこじゃなくて、もっと違う事教えてあげてYO〜
じゃあfopen関数でファイルの読み出し明日教えるので
for使うから教えてあげといてくれや〜
70名無しさん@お腹いっぱい。:02/02/09 22:24 ID:nOl88oBF
for教ぇてー
71プチ弐ch編者 ◆exvx.LWc :02/02/09 22:48 ID: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回繰り返し表示したら止まるスクリプトを書こう!
7270:02/02/09 23:39 ID:asbQJ/tM
こんなんでよかと?
<?php
for($i=0; $i<5; $i++)
{
print "php<br>";
}
?>
73名無しさん@お腹いっぱい。:02/02/10 00:17 ID:???
出力したソースも奇麗に見せたいなら
<?php
 for($i=0; $i<5; $i++)
   print("php<br>\n");
?>
74名無しさん@お腹いっぱい。:02/02/10 00:33 ID:???
おお。やっぱりphpってcに似てるなー。
<?php
for($i=0;$i<5;i++) {
print("php<br>");
}
?>
75 :02/02/10 00:34 ID:c7L2QbWR
<?php
$i=5;
for(;;){
if(!$i--) break;
print "test<br>\n";
}
?>
76名無しさん@お腹いっぱい。:02/02/10 00:39 ID:???
<?php
$i=5;
for($i--){
print "test<br>\n";
}
?>
77名無しさん@お腹いっぱい。:02/02/10 00:44 ID:???
補足:
$i++;より++$i;の方が若干処理が早くなるらしい
78 :02/02/10 00:45 ID:???
<?php
$arr = array("test","test","test","test","test");
for( ;list($key,$val)=each($arr); )
print $val."<BR>\n";
?>
79名無しさん@お腹いっぱい。:02/02/10 00:47 ID:???
むずいって
80 :02/02/10 00:51 ID:???
<?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);
}
?>
81名無しさん@お腹いっぱい。:02/02/10 00:52 ID:???
>>78,>>80分からない。
8268:02/02/10 00:53 ID:???
最適化>78
<?php
$arr = array("test","test","test","test","test");
foreach($arr as $val)
print $val."<BR>\n";
?>
8368:02/02/10 00:56 ID:???
漏れのソースコードにfor文って使ったこと無いけど必要?
whileだけでループ処理はOKじゃない?
84 :02/02/10 00:57 ID:???
<?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";
}
?>
85名無しさん@お腹いっぱい。:02/02/10 00:59 ID:???
( ´Д⊂ヽマックじゃローカルで出来ないノカー
86 :02/02/10 01:01 ID:???
>>83
おれもWhileを多用する。forは使わない。

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

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

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)
--------------------------------------------------------------------------------
9486:02/02/10 01:37 ID:???
>>93
んなことないよ。俺だって今日はじめたばかりだよ?
95名無しさん@お腹いっぱい。:02/02/10 01:48 ID:???
cもperlも習ってないのにいきなりforeach()とか言われても、、、
9668:02/02/10 01:49 ID:???
俺は仕事で半年くらい。
ただ、他の言語(C,VB,C++,perl)辺りは入門書程度しかできん。
9786:02/02/10 01:58 ID:???
あ、でも仕事でC言語3年やってる。オラクルとPro*Cも。
仕事でCGI作ってもC言語だからPerlも使わないな。
98名無しさん@お腹いっぱい。:02/02/10 02:31 ID:???
初めてこのスレ見た。なんか、for文見てCに似てるなぁ、って思ったら、やっぱり同じ事書いてる人がいた。
面白そうだからちょっとやってみようかなぁ・・・
99名無しさん@お腹いっぱい。:02/02/10 02:56 ID:lc6ei33b
PEARでフォーム表示させるクラス、
あれなかなか便利だよ。
あとMacでPHPだけど、
OS Xなら>>87のページにいって
説明どおりにインストールすればできる。
というか、ボタン1つでApacheが起動するOS Xで
PHPを使わないでどうしますか。
UNIXの勉強にもなるよ。
100名無しさん@お腹いっぱい。:02/02/10 10:55 ID:???
100ゲト
101ミニ弐ch編者 ◆exvx.LWc :02/02/10 13:37 ID: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っ歩作りなんだよ
102名無しさん@お腹いっぱい。:02/02/10 14:30 ID:???
付いていけるようガンガルYO!(´ー`)
10386:02/02/10 15:04 ID:???
ファイル表示って何だろう・・・。
104ミニ弐編 ◆exvx.LWc :02/02/10 15:10 ID:mVUXJnyg
>>103
あの〜ファイルを読み出して表示する事だよ、だから今日は掲示板作るの
105名無しさん@お腹いっぱい。:02/02/10 15:27 ID:???
なんだ、ホンモノの弐編じゃないのか(;´Д`)
106名無しさん@お腹いっぱい。:02/02/10 18:05 ID:yVc1VLa3
うー、ローカルで実行できん・・・
test.phpにアクセスしようとすると<?phpinfo();?>って表示されちゃう。
ムキー
107ミニ弐編 ◆exvx.LWc :02/02/10 18:33 ID:mVUXJnyg
>>106
とりあえずhtmが動くか試してみて、それでhtmが動いたら
教えて
108106:02/02/10 18:35 ID:???
「一般パスでも実行する」にチェックいれたら出来ました。
逝ってきます。
109106:02/02/10 18:37 ID:???
>107
あ・・ミニ弐編さんのレスがついてる。すんません。
htmlは動いたんで、あれこれいじってたら動きました。
110ミニ弐編 ◆exvx.LWc :02/02/10 18:40 ID:mVUXJnyg
>>107
準備できたんだー!良かったら過去ログ読んで参加してく〜れや〜
111106:02/02/10 18:45 ID:???
>>110
今一番上から読み直してます。なんとか追いつきます〜
112ミニ弐編 ◆exvx.LWc :02/02/10 21:01 ID: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作成みたいにやっていいですよ

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

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

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

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

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

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

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

となる。
ちなみに両方ともforは一度しか実行されない。
139名無しさん@お腹いっぱい。:02/02/11 01:01 ID:???
>>138
訂正。
$msg="msg<br>";
→$msg="$msg<br>";
14070:02/02/11 01:10 ID: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]");
}
?>
14170:02/02/11 01:11 ID:EU7Zm1l2
あ、わかった。ゴメ。スペル間違い!
142名無しさん@お腹いっぱい。:02/02/11 01:12 ID:???
>>140
$filename = fopen("$fl","a+");

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

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


          ご め ん な
162名無しさん@お腹いっぱい。:02/02/11 23:11 ID:V4D6aage
うぃ。がんばって。
163名無しさん@お腹いっぱい。:02/02/11 23:36 ID:W/lrEjt/
つーか勉強できるような日じゃなかったしね・・・
そーす。
http://s7.xrea.com:8080/~readcgi/nihen/source.php?ex.php
164名無しさん@お腹いっぱい。:02/02/12 00:48 ID:???
<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の部分を少しいじらなきゃいけないな。
165名無しさん@お腹いっぱい。:02/02/12 01:25 ID:???
>>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件を表示になると思う。
166ミニ弐編 ◆exvx.LWc :02/02/12 16:24 ID: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>");←それで逆から読みだしてる
}
?>
次回とう言うか今日だが本格的にテーブル等を使い掲示板を作る!
167名無しさん@お腹いっぱい。:02/02/12 16:26 ID:???
おお、楽しみだ
168名無しさん@お腹いっぱい。:02/02/12 16:53 ID:???
がんばれよ!
169名無しさん@お腹いっぱい。:02/02/12 17:22 ID:e1RIuohq
>ミニヘン
お前漏れこのスレ楽しみにしているので
せいぜいがんばってください。
170名無しさん@お腹いっぱい。:02/02/12 19:17 ID:???
fclose($fp);
header("Location: ./bbs.php");
じゃダメ?
171名無しさん@お腹いっぱい。:02/02/12 20:49 ID:???
172名無しさん@お腹いっぱい。:02/02/12 21:53 ID:???
$msg=ereg_replace("<", "<", $msg);
$msg=ereg_replace(">", ">", $msg);

タグ消し
173名無しさん@お腹いっぱい。:02/02/12 22:16 ID:???
タグ消し関数じゃだめなのかい?
174名無しさん@お腹いっぱい。:02/02/12 22:31 ID:YTgQL1q9
175名無しさん@お腹いっぱい。:02/02/12 22:37 ID:YTgQL1q9
>173
$msg = htmlspecialchars ($msg);
こんなんでいいの?
上のスクリプトに足してみた。
タグ禁止。
176名無しさん@お腹いっぱい。:02/02/12 22:49 ID:???
>>174
著作権表示消したらいかんよ
/* source view==PHP4 Only!== by ToR */
/* ->source.php?target.php */
177名無しさん@お腹いっぱい。:02/02/12 23:26 ID:e1RIuohq
PHPはえぇ!
17891 ◆Angel1EM :02/02/12 23:39 ID:???
>68
反応遅れてごめんなさい〜。
こんなページあったんだ・・・。
とりあえずみてみるよ。
ありがと〜。

そういえば、PHP4.1.0からpost/getされたデータを
グローバル変数で取り出すの、非推奨になってたんだね。
179名無しさん@お腹いっぱい。:02/02/12 23:43 ID:tN7VQo4U
>176
ゴメソ。まともにダウンせずに、サイトに直で載ってたソースコピペしちゃってた。
直しまスた。
180ミニ弐編 ◆exvx.LWc :02/02/12 23:45 ID:GZCCMcX5
出来たできた〜、
やっぱフレームやめたは
ビルダー作だけど
htmlから
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 6.5.0.0 for Windows">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>

<BODY bgcolor="#619fbe" text="#ffffff">
<BLOCKQUOTE>
<form method="post" action="bs.php">
<DIV align="center">名前<BR>
<tt><INPUT name="name" type="text" size="24"><br>
本文<br>
<TEXTAREA name="com" cols="21" rows="9"></TEXTAREA><br>
<input type="submit" value=" Send "><br>
</tt></DIV>
</form><hr>
181ミニ弐編 ◆exvx.LWc :02/02/12 23:47 ID:GZCCMcX5
<?php
/* 設定 */
$logfile = "sample2.htm";//ログファイル名
$viewmax = 5; //表示行数
$logmax = 100; //保存最大行数
/* 書き込み処理 */
if($name && $com)
{
$com = str_replace("\r\n", "\r", $com);//Win系は\r\n
$com = str_replace("\r", "\n", $com); //Mac系は\r
$com = nl2br($com);//改行文字の前に<br />追加
$com = str_replace("\n", "", $com);//\n除去
$dat = "<P align=\"center\">$name<BR><BR><BR>$com</P>\n";
//ログに書き込む
$lines = file($logfile); //いままでのログを配列に読み込む
$fp = fopen($logfile, "w"); //ログをオープン(空になる)
fputs($fp,$dat); //データを書き込む(先頭に)
for($i = 0; $i < $logmax-1; $i++) //いままでの分を追記
fputs($fp, $lines[$i]); //(配列0-98→現ログ1-99行目)
fclose ($fp);
}
//表示処理
$lines = file($logfile);
for($i = 0; $i < $viewmax; $i++)
{
print("$lines[$i]<HR>");
}
?>
</BLOCKQUOTE>
</BODY>
</html>
ここ結構マネてんだけどね
http://php.s3.to/tt/tt5.php#multi
↓ソース解説、少しまってちょ
182ミニ編 ◆exvx.LWc :02/02/12 23:52 ID:GZCCMcX5
<?php
/* 設定 */
$logfile = "sample2.htm";//ログファイル名
$viewmax = 5; //表示行数
$logmax = 100; //保存最大行数
/* 書き込み処理 */
if($name && $com)←&&は〜と〜って意味
{
$com = str_replace("\r\n", "\r", $com);//Win系は\r\n←str_replace関数は置き換え関数みたいな感じ
$com = str_replace("\r", "\n", $com); //Mac系は\r
$com = nl2br($com);//改行文字の前に<br />追加←<BR>タグいれてくれる関数nl2br
$com = str_replace("\n", "", $com);//\n除去
$dat = "<P align=\"center\">$name<BR><BR><BR>$com</P>\n";
//ログに書き込む
$lines = file($logfile); //いままでのログを配列に読み込む
$fp = fopen($logfile, "w"); //ログをオープン(空になる)
fputs($fp,$dat); //データを書き込む(先頭に)
for($i = 0; $i < $logmax-1; $i++) //いままでの分を追記
fputs($fp, $lines[$i]); //(配列0-98→現ログ1-99行目)
fclose ($fp);
}
//表示処理
$lines = file($logfile);
for($i = 0; $i < $viewmax; $i++)
{
print("$lines[$i]<HR>");<HR>は水平線
}
?>
宿題
何か作ってきて
次回 明日はお休み
カウンタ作ってみる?
183ミニ編 ◆exvx.LWc :02/02/12 23:59 ID:GZCCMcX5
すまん急いで作ってんでわけわからんかもしれん、
またすっげー(・∀・)イイの作ってだすから〜ん!
今回わけわからんかった人も次の解説まってチヨ!
184名無しさん@お腹いっぱい。:02/02/13 00:11 ID:???
何かいいもの、、、って?
185名無しさん@お腹いっぱい。:02/02/13 00:12 ID:???
>>184
>何か作ってきて
だった。何かって・・?
186名無しさん@お腹いっぱい。:02/02/13 00:18 ID:???
講座っつーか、教わってる感がするのは漏れだけか
187ミニ編 ◆exvx.LWc :02/02/13 00:23 ID:TgdYFLH9
>>184
ぃゃぁあのhtmlを駆使してイカシテル掲示板とか、
じゃんけんスクリプトとか何でもいいんで、おもろいもん、自分で
何か作るのが一番の勉強だからさ
>>186
俺が?

あと
>>167
>>168
ありがとーう!!!
>>169
 意 味 が わ か ら ん
>漏れこのスレ楽しみにしてるから
ありがとう
>>せいぜいがんばれよ
はぁ?どっちやねん(´ω`;;;;)
188ミニ編 ◆exvx.LWc :02/02/13 00:37 ID:TgdYFLH9
じゃあ寝るんで、お休みなさい明後日から再開します
じゃぁ!
189名無しさん@お腹いっぱい。:02/02/13 00:38 ID:???
うい。
190名無しさん@お腹いっぱい。:02/02/13 01:08 ID:a5UGinf1
ミニヘソさん 乙です。
191名無しさん@お腹いっぱい。:02/02/13 09:54 ID:???
ミニ編さん、perlをやってるのですが、
PHPを勉強する利点ってありますか?
192gikochan ◆Bei0tBWg :02/02/13 12:47 ID:???
>>181
ミニ編さま、講師おつかれさまですー。
個人的に 181の別解おもいついたのですが、効率を重視して(?)、
こういうのはどうでしょうか?
181の書き込み処理を軽くすませる方法(・∀・)
新たな命令 array_shift / array_slice / implodeつかってしまいました(´Д`;)

181の14行目〜21行目
//ログに書き込む-----------------------------------------------------------------------
$lines = file($logfile); //いままでのログを配列に読み込む
$lines = array_shift($lines,$dat); //配列の先頭に新しい要素(データ)を追加
$lines = array_slice($lines,0,$logmax); //配列の先頭[0]の要素から、指定個数($logmax)だけ残す
$write_data = implode($lines,""); //配列の内容を1つの文字データに結合
$fp = fopen($logfile,"w"); //ログファイル書き込みオープン
fwrite($fp,$write_data); //書き込み
fclose($fp); //クローズ
//-------------------------------------------------------------------------------------
193gikochan ◆Bei0tBWg :02/02/13 12:47 ID:???
{192の補足コメント}
一度ログを配列にとりいれたのなら、配列だけで一度に新しい情報の追記などの処理をしてしまう。
書き込みは最後にfwrite一度のみで、済ませていまふ。
今回はforループ内で書き込み処理を使っていません。
forループで繰り返し書き込み処理(fputやfwriteなど)を行うと、保存行数が増えたとき、
(たとえば非現実的ですがログ保存行数が5000行とか)重くなるなど、のデメリットがあるため。
保存行数5000行ならループを5000回繰り返すことになるです(゚∀゚;)
以上、勝手な解釈ですみませぬ。m(_ _)m
194名無しさん@お腹いっぱい。:02/02/13 22:09 ID:???
1 名前:ミニ編 ◇aCDPDEl2 投稿日:2002/02/13(水) 22:07
http://pc.2ch.net/test/read.cgi/php/1012902013/l50
ここに俺odnADSLだからしばらく書けないかもって書いてきてください

ですって
195名無しさん@お腹いっぱい。:02/02/13 22:09 ID:Df5j9fvu
1 ミニ編 ◇aCDPDEl2 2002/02/13(水) 22:07

俺odnADSLだからしばらく書けないかも
196名無しさん@お腹いっぱい。:02/02/13 22:09 ID:???
ミニ編 ◇aCDPDEl2 からの伝言です。

俺odnADSLだからしばらく書けないかも

http://www.i-love-you.gr.jp/test/read.cgi?bbs=loung&key=013605666
197ミニ編(代筆):02/02/13 22:11 ID:???
アク禁食らっちゃいました
198名無しさん@お腹いっぱい。:02/02/14 00:16 ID:HMQ3IZ2G
なんでょ?楽しみにしてたのに(´w`)カクー
199193 ◆Bei0tBWg :02/02/14 00:54 ID:???
193のarray_shiftはarray_unshiftの間違いでしたm(_ _)m
失礼しました。
200名無しさん@お腹いっぱい。:02/02/14 01:33 ID:???
負荷のことはよくわからないが、
193のやり方がすっきりしてていいと思う。
でもどちらがサーバにやさしいんだろう?
5000行ぽっちじゃなくて
50万行くらいいったら差が出るんかな?
201名無しさん@お腹いっぱい。:02/02/14 02:21 ID:???
>>200
ステップ数よりも処理の内容によるでしょ。
202名無しさん@お腹いっぱい。:02/02/14 08:07 ID:???
>>200
50万行を配列にいれちゃうの?
ブルブル…
203201:02/02/14 09:49 ID:???
あ、なんか勘違いしてた(;´Д`)
逝ってきます。
204名無しさん@お腹いっぱい。:02/02/14 11:12 ID:JQ2Gyegk
>202
foreachで回さない限り、破綻はしないけどね。
ま、アクセスが強烈なサイトだったらやめた方がいいかもね。
一日一万アクセス程度のサイトだったら、50万レコードの配列程度じゃびくともしなかったよ。
(ていうことは、やったということだけどね)

ちなみにサーバは、500MHz程度のペンティアムに512MBのメモリのLinuxだった。
whileで回して、lastで抜けてたけどね。
205名無しさん@お腹いっぱい。:02/02/14 18:08 ID:???
>>204
foreach使うとまずいの?
206名無しさん@お腹いっぱい。:02/02/14 19:32 ID:???
>>204
512MBも積んでいるからだろ。
207名無しさん@お腹いっぱい。:02/02/14 20:55 ID:JQ2Gyegk
>205
foreachは、配列をいったん評価してからループにはいるから、配列の中身が50万個あると、
その50万個を評価するのに時間とリソース食う。
whileなら、さみだれ式に処理するから、めっかったところでなんか処理したらいい。
ただし、keysやvalues使っちゃうとwhileでも巨大なメモリ消費になるので、危険は危険。
eachで逐次処理するのが一番もっともらしいかな?
ただ、重いのは重いよ、やっぱし。
どきどきしちゃう。
208すみません:02/02/14 21:02 ID:Ng/0IjnQ
Web Arena って PHP3.PHP4使用できるって書いて有るけど、制約が有るみたいな事も書いてある
普通に動かすことってできるのですか?
過去ログに有ったらすみません、場所教えてください。
PHP 素人です。
209名無しさん@お腹いっぱい。:02/02/14 22:01 ID:???
関係無いスレに書くなよぅ
210名無しさん@お腹いっぱい。:02/02/15 09:54 ID:BTNR6PIJ
(◕ฺ∀◕ฺ)
211名無しさん@お腹いっぱい。:02/02/15 10:15 ID:???
>>208
ホスティングサービスのPHP制限って言ったらセーフモードだろ(予想
あと、スレ違いな( `Å´)
212名無しさん@お腹いっぱい。:02/02/15 11:18 ID:adcoziP5
php saiko
213名無しさん@お腹いっぱい。:02/02/15 13:43 ID:???
ミニ弐編!早く帰って濃い! みんなお前を待ってるぞ!
214名無しさん@お腹いっぱい。:02/02/15 16:37 ID:blqT6YTo
いや、セーフモードでいいと思うよ
制限かかってるといってもsystem()とかそういうやつなので
こった事やろうと思わないなら問題ないと思う
215名無しさん@お腹いっぱい。:02/02/15 19:24 ID:???
$1ってどうやんの?
216名無しさん@お腹いっぱい。:02/02/15 23:10 ID:???
ereg(.., .., $regs);
$regs[1] ←$1
217名無しさん@お腹いっぱい。:02/02/16 12:12 ID:mTWd6Sj2
ミニ編いなくなっちゃったから、俺がしきるかなヽ(´ー`)ノ
218びびり:02/02/16 13:47 ID:q6j0GCIZ
誰か↓のCGIをPHPにできませんでしょうか?ちなみに今は壊れてます。

http://210.136.159.185/cgi-bin/bbsk/bbsi.cgi
219名無しさん@お腹いっぱい。:02/02/16 14:05 ID:???
>>218
出来るけど自分でやれ。
もしくは30万円で作ってやる。
220ミニ編 ◆exvx.LWc :02/02/16 14:21 ID:???
書き込めるかtest、書けたらレス書くから待って!
221名無しさん@お腹いっぱい。:02/02/16 14:22 ID:???
>>216 ????

まあ一応ここ見て解決したが、
http://www.php.net/manual/ja/function.preg-replace.php
はまったのは取り出した$1を展開する時


=======================================
例 2/e 修飾子の使用法

preg_replace ("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);
=========================================
置換する式を""でくくららいといかん

222ミニ編 ◆exvx.LWc :02/02/16 14:25 ID:x2V+2d4L
わーい書けた〜、
>>191
phpの利点だが、早い,webprog専用なので関数がいっぱいあって楽!
逆にwebprogにしか使えないとも言えるが、、
IPなんて一行で抜ける、レイアウトとスクリプトの役割分担しやすい

だめなとこ
鯖は改善されてきたが、これといった本が無いな、こんなもんだよ
>>214
セーフモードってうpロダとか使えないんじゃなかったっけ?
>>217
おお!お願いできる?今日の講座終わったら次から よ ろ し く!
>>218
3週間もあれば書くけど、、自分で作ったほうが早いよー
223ミニ編 ◆exvx.LWc :02/02/16 14:33 ID:x2V+2d4L
じゃぁ最近リアルで忙しいんで最後の講座でーす!
続きは>>217さんか他の方ができたらやってもらいたいなぁ

カウンタを作ってみよう!
<?
$filename = "count.dat";

$file = fopen($filename,"r");
$count = fread($file, filesize($filename));
fclose($file);
$count++;
print("$count");
$file = fopen($filename,"w");
fwrite($file, $count);
fclose($file);
?>
解説
<?
$filename = "count.dat";←$filenameはcount.datにする
$file = fopen($filename,"r");←読み専用で開ける
$count = fread($file, filesize($filename));←
fread関数はfread(読み込むファイル,読み込むサイズ)
でfilesizeで$filenameの大きさ測った
fclose($file);←閉める
$count++;←$countに1足す
print("$count");←表示カウンタ
$file = fopen($filename,"w");←カク専用で開ける
fwrite($file, $count);←書く
fclose($file);←閉める
?>
224ミニ編 ◆exvx.LWc :02/02/16 14:40 ID:x2V+2d4L
じゃぁ、俺編は今日で最後です〜。。
これで興味を持った人や初めてphpを触って面白いと思った
人がいたら凄く嬉しいです。。
あとレッツphpさん俺もあなたのページ凄く好きですよ!
番外編-お勧めphpエディタ-&-お勧めページ-
エディタ↓
http://www2s.biglobe.ne.jp/~t-susumu/toclip/library/tpad.html
ページ↓
http://php.s3.to/
http://www.dcl.info.waseda.ac.jp/~hasegawa/php/
ここで覚えたんでソースそっくりです

誰か俺が教えてやるぞーって人いたらやってください
長い間楽しかったです、じゃぁ!   ミ二編
225あぼーん:あぼーん
あぼーん
226あぼーん:あぼーん
あぼーん
227名無しさん@お腹いっぱい。:02/02/16 17:56 ID:Rq7ix2oE
>>ミニさん
お疲れ様でした。
つうかできればこんどはもうちょっと上のレベルを
あなたに教えてほし(略)
228あぼーん:あぼーん
あぼーん
229ミニ編 ◆exvx.LWc :02/02/16 18:22 ID:x2V+2d4L
>>227
また時間が出来たら中級編でもやるよー。じゃぁおつかれさまでした!
>>228
よりたいなら素直によりたいって言えば?あほちゃうか
230あぼーん:あぼーん
あぼーん
231あぼーん:あぼーん
あぼーん
232名無しさん@お腹いっぱい。:02/02/16 22:01 ID:49kJ9jS2
おつかれ〜
これでPHPに興味を持ったよ。本も買ったしね。
中級編楽しみにしてるね
233名無しさん@お腹いっぱい。:02/02/16 22:25 ID:???
クラスの使い方きぼーん。
234あぼーん:あぼーん
あぼーん
235あぼーん:あぼーん
あぼーん
236あぼーん:あぼーん
あぼーん
237あぼーん:あぼーん
あぼーん
238名無しさん@お腹いっぱい。:02/02/17 12:48 ID:Zw3sJVBz
>>233
PEAR?確かSoftwareDesignに乗ってたと思われ。
239あぼーん:あぼーん
あぼーん
240名無しさん@お腹いっぱい。:02/02/19 12:45 ID:???
あぼんぬがイパーイになちゃたね。
ともあれ、ミニヘソさんオツカレでした。
おいらもPHPちょいと勉強してみる気になりました。
241名無しさん@お腹いっぱい。:02/02/19 14:55 ID:1v3AUB4U
はじめまして、とても勉強になりました。
あと、下記でPHPの本が丸ごと一冊ダウンロード出来ます。
通称マンモス本
http://www.php.gr.jp/php/php4tettei/
242名無しさん@お腹いっぱい。:02/02/19 15:45 ID:???
       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       | おい! オカマ野郎出てこい!
   ∧ ∧ |/\_________
   (,,゚Д゚)____.
   (つ/~ ※ ※ \
   /※ ※ ※ ※ \
243名無しさん@お腹いっぱい。:02/02/19 15:48 ID:???
>241
thx!
>242
そのAA使わないでくれる?
荒らしだと思われたくないから。
244あぼーん:あぼーん
あぼーん
245あぼーん:あぼーん
あぼーん
246名無しさん@お腹いっぱい。:02/02/19 17:12 ID:???
       ∧∧     / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       /⌒ヽ)  < 荒らしに使われてる…
     〜(___ )    \_____________
     ''" ""''"" "''
247名無しさん@お腹いっぱい。:02/02/20 18:48 ID:???
てか、なぜmegabbsでやらないの?
今までいろいろ類似スレ立ててたみたいだけど、いっこうに答えてくれてないぞ。
248名無しさん@お腹いっぱい。:02/02/20 23:19 ID:???
>>247
姫のやることに口出すなや低脳w
249>>248:02/02/21 01:22 ID:???
     ____
    /∵∴∵∴\
   /∵∴∵∴∵∴\
  /∵∴∴,(・)(・)∴|
  |∵∵/   ○ \|
  |∵ /  三 | 三 |  / ̄ ̄ ̄ ̄ ̄
  |∵ |   __|__  | < 弐編へ帰れ腰巾着!!!
   \|   \_/ /  \_____
     \____/
250名無しさん@お腹いっぱい。:02/02/21 01:53 ID:???
>>249
仕様が無いな。
コロすか(藁

元メッセージ:弐編へ返れ腰巾着!!!
リバース・スピーチ:くやちんぎしこれえかへんへに
語釈:くやしい!これへ代えんへに。
第一深度解釈:くやしい!何か一生懸命になれるものや
       好きなものを持っている奴が羨ましい!!

ヲマエの精神の空虚さがたっぷり暴露されたようだなw
251名無しさん@お腹いっぱい。:02/02/21 03:05 ID:???
なんだよ、249沈黙かよ。
250、図星だったんだな(ワラ
252名無しさん@お腹いっぱい。:02/02/21 04:12 ID:???
つか、弐ch編集と弐ch編者を間違えてるやつはいないだろうな。
253ていうか ◆16H8/cmo :02/02/21 05:06 ID:???
<?
header("Location: http://www.2ch.net");
exit;
?>
これをプログラムの先頭にいれとけ(w
254名無しさん@お腹いっぱい。:02/02/21 05:32 ID:aUjfYYl6
<?php
header('Refresh: 0;URL=http://www.2ch.net/');
?>
でも良いと思われ。
255名無しさん@お腹いっぱい。:02/02/21 06:12 ID:???
>>251
1時間12分しか放置に耐えられないってのは弱すぎると思う。
256247:02/02/21 17:28 ID:???
>>248,252
いや弐ch編集だから叩いてる訳じゃなくてさ。
PHP講座の内容は評価できるけど、ここじゃいくらやっても荒れるって。
megabbsでマターリやった方がいいと思うんだよ。

弐編の名を出すと叩かれやすいのは事実だけど。
257名無しさん@お腹いっぱい。:02/02/26 23:53 ID:???
PHPを利用しているんだけど、
テレホ時でTELNETコマンドでps axで調べると
/usr/local/apache/bin/httpd
がいっぱい表示されて高負荷になってしまうんだけど、
これってアルゴリズムに問題があるのかな・・・?
load average: 16.30, 16.05, 12.64
こんなに高負荷・・・。
サーバーは1GHzメモリ512MBを利用しているんだけどなぁ・・・。
もちろん専用サーバーでAT-LINKを利用しているんだけど。

ちなみにアクセス数の多いホームページでincludeを2つ利用しています。
分かる人いるかな・・・
258名無しさん@お腹いっぱい。:02/02/27 03:20 ID:???
includeしか使ってないなら普通そんな負荷にならないはず。
アルゴリズムについて指摘受けたいならその部分を書かないと。

てか以下に誘導
http://pc.2ch.net/test/read.cgi/php/1013919792/
259名無しさん@お腹いっぱい。 :02/02/27 10:35 ID:pI9sVku1
すみません、多分すごくばかみたいな質問だと思うんですが、どうしてもCOPYとrenameが思うように動いてくれません。
何が悪いのか教えてください。お願いします。
temp2.jarもrenameしたファイルも temp.jar と同じaaaディレクトリの中に作りたいです。

$filename = "../aaa/temp.jar";
$copied_filename = "temp2.jar";
$new_filename = $Server_name . ".jar";

if(!copy($filename, $copied_filename)){
echo "$head
        <br><br><center>br>失敗</center>
        $foot";
}
else {
if(!rename($copied_filename, $new_filename))
echo "$head
             <br><br><center>br>失敗</center></center>
             $foot";
}
260あぼーん:あぼーん
あぼーん
261あぼーん:あぼーん
あぼーん
262あぼーん:あぼーん
あぼーん
263あぼーん:あぼーん
あぼーん
264あぼーん:あぼーん
あぼーん
265名無しさん@お腹いっぱい。:02/03/01 02:38 ID:???
姫、、、、
266名無しさん@お腹いっぱい。:02/03/01 02:38 ID:???
乳でかすぎw
267あぼーん:あぼーん
あぼーん
268あぼーん:あぼーん
あぼーん
269nobodyさん:02/03/14 05:59 ID:KJ3/vw2Q
aaaagge
270nobodyさん:02/03/18 22:06 ID:QDdi1EIX
2ch編集さんはもう教えてくれないのでしょうか
271nobodyさん:02/03/19 01:22 ID:???
あいつはすぐに、逃げるくせがあるからな!
272あぼーん:あぼーん
あぼーん
273nobodyさん:02/03/20 13:31 ID:wisaBgdp
http://ime.nu/homepage2.nifty.com/satp/imgboard/img-box/img20020319005040.jpg

姫、怒るなよw
贈り物だよハァハァw
274nobodyさん:02/03/20 15:31 ID:???
>>273

弐編姫パンチラ写真だ。
275あぼーん:あぼーん
あぼーん
276nobodyさん:02/03/22 16:31 ID:6SIb5nGW
このスレすげ−勉強になった。判りやすい。
誰かつづけてやってくれないかな。
オネガイクンでごめん・・。
277あぼーん:あぼーん
あぼーん
278あぼーん:あぼーん
あぼーん
279nobodyさん:03/01/02 13:13 ID:???
まだ残ってたか。
280nobodyさん:03/01/03 07:46 ID:???
php始めた頃はいいスレだと思ったけど、
今見ると弐ch編集は間違いだらけで酷い。。
281nobodyさん:03/04/12 00:25 ID:???
今、最初の方を読んでて思ったけどさ
>>30-31
パーミッションに x はいらないよ。
282nobodyさん:03/08/01 13:40 ID:???
if($hoge == "hoge")
{
print("正解");
}else{
print("残念");
}
じゃないの?
283nobodyさん:03/08/19 20:54 ID:???
Flashは保存できるのはわかるんだけどphpって保存できるん?
284nobodyさん:03/09/02 11:52 ID:???
保守
285nobodyさん:03/12/01 11:09 ID:???
保守
286nobodyさん:04/02/07 14:45 ID:DrNIcIZE
弐編降臨キボンヌ!!!!!!!
287nobodyさん:04/02/07 16:29 ID:xjQExXAc
htmlの中に

<? include menu.html.php ?>

と書いて menu.htmlという外部ファイルを
読み込んで表示させたいんだけど
うまくいかない

これだけじゃだめなの?

サーバーはPHP可
288nobodyさん:04/02/07 17:26 ID:0haHbyRf
>>287
ぜんぜんだめ
289nobodyさん:05/01/23 13:23:48 ID:b8/aIX6y
弐編姫の正体は?
290nobodyさん:2006/06/21(水) 18:35:36 ID:???
PHPを絞ったら白い液が出てきたので

飲んだ

PHPがわかった気がした。
291nobodyさん:2006/09/07(木) 15:47:38 ID:???
意味不明だな。
<? include "menu.html" ?>
292nobodyさん:2006/09/22(金) 20:56:27 ID:???
ちょwwww
.html.phpで読み込めたらzzzzzzzzzzzzzzzzzzz
293名無しさん@お腹いっぱい。:2006/12/10(日) 19:00:34 ID:z6nswriX
294電脳プリオン:2011/11/08(火) 22:38:01.25 ID:??? BE:101352825-2BP(1960)
似たようなスレがあった希ガス
295nobodyさん
わあ