トップページphp
997コメント327KB

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

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

PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/
0002nobodyさん02/03/30 12:13ID:???
宣伝板でも逝け
0003nobodyさん02/03/30 12:32ID:???
まず>>1から晒してね。

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

厨なスクリプトかもしれないけど、どんなもんでしょう?
ちなみに画像掲示板です。
0005nobodyさん02/03/30 22:45ID:???
talksstpが(・∀・)イイと思った
0006なると02/03/31 03:05ID:???
昨日はじめたようなプログラム初心者ですが、
晒していいのかなぁ、、
0007nobodyさん02/03/31 12:20ID:e940DqcP
>>なるとさん
Hello world!でもいいですよ!
0008nobodyさん02/03/31 20:50ID:BQ+/DH6N
ポマエラ!こんなロジック組んでくれ。おながいします

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

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

これを

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

55のところをXXに変更。

つまり、指定した列の指定した行を任意に変更できるロジック。
もちろん、なるべくメモリを食わないように。
0009nobodyさん02/03/31 21:47ID:???
うるせースレ違いバカ。
0010どっかであぷろだ晒し中02/03/31 22:18ID:???
>>4
フォームを echo で表示してるとこ、
「"」をいちいちエスケープするくらいなら「'」で書きゃいいのに、
と思った。
あと、他の表示の部分も、毎回変わる内容じゃなければ
上の方に変数にして固めておけば、少しはさっぱりするんじゃないかな。

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

他は、なんか自分よりコード綺麗でいいなと思ったり。
0011nobodyさん02/03/31 22:52ID:???
>>4
書き方のスタイルの違いかもしれないけど、
echoじゃなくて、?>で閉じて普通に出力したほうが
見やすいと思った。
Dreamweaverで編集もできるし。
00121102/03/31 23:17ID:???
みんなに聞きたいんだけど、タグとか文字とか出力するときってどうしてる?

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

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

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

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

面倒、面倒と思ってたのに、そんなことが出来たとは・・・
0014402/03/31 23:34ID:???
レスついてますな。
10&11氏の意見は参考になるのでどうもありがとうございます。
エスケープするのは'だとなんか自分的にややこしいので\"使ってます。
12のは見てもらえばわかる通り前者です。
00151102/04/01 00:49ID:???
>>13
どのバージョンからできるようになったかは知らんが、
最近のはできる。
俺は<?= ?>より<? echo $a ?>のほうがいいだと思う。
互換性だけでなく見た目的にも。
0016 ◆AngelBlk 02/04/01 11:03ID:???
自分はXMLのこと考えて
<?php echo $a; ?>
にしてるなぁ・・・。
面倒とは思うんだけど。

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

<?
$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>
0018なると02/04/01 21:52ID:IORYSc+w
さげちゃったです。。
0019nobodyさん02/04/01 22:20ID:???
exit ("ファイルが開けません!!");とかは?
あと
$count = fgets($fp, filesize($file));
とかの方がいいのかもしれない。
あとflockとかも入れたほうがいいのかな。
0020なると02/04/01 22:50ID:IORYSc+w
>>19
アドバイスありがとうございます!
$count = fgets($fp, filesize($file));ってことは、
つまり、漏れのやつだと256バイトを読み込んでるんだけど、
これだとファイルのサイズに合わせて読み込めて、軽くなるってことかな。。

flockはファイルロックですよね。。
0021なると02/04/01 22:53ID:IORYSc+w
あれ。$count = fgets($fp, filesize($file));に変えたら
カウンタが1から動かなくなってしまった。
0022nobodyさん02/04/01 23:12ID:???
ごめん折れにもわからなかった
逝って来る
0023apacheuserさん02/04/01 23:46ID:???
>>20
一応マニュアルにはfgetsの二つ目の引数の大きさは
ファイルサイズを越えても問題ない、とあった気がする。

個人的にはエラーが出て終了するんじゃなくて、$countに
エラーを代入して数字の代わりにエラーメッセージを出力、
ってほうが好き。
0024なると02/04/02 00:53ID:SHbCbPK7
>>23
おお、なるほど。
じゃあ、これでも問題はないと。。ありがとうございます。

というか今見てみると、
if(!($fp = fopen($file, "r")))の
if(!
の意味がわからない、、、調べてきます。。
0025nobodyさん02/04/02 02:21ID:???
しかし、こうして見るとPHPは本当に簡単そうだな。
0026apacheuserさん02/04/02 07:38ID:???
>>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バイト以上のデータを突っ込んでみれ。
何かわかるかも。
0027なると02/04/02 12:55ID:4fz1y7Df
>>24
自己レス。「!」は否定の演算子なので、
この場合は、ファイルが開かなかった場合、という意味っぽい。

>>25
初心者にもわかりやすくて、楽しいですよヽ(´ー`)ノ
>>26
わかったような、わからないような…。
0028nobodyさん02/04/02 17:51ID:???
>>21
fgetsだと-1バイトで終わるからfreadに変えるのが正解かな
例えばlog.txtに1バイトしか入ってないと
fgetsだと1-1で0になるから
次の$count++で1になっていつまでたっても1から進まないのでは?

つうか分かりづらいので
fgetsの後に$count2とか作って、後で表示させた方が分かりやすいかもん
00292802/04/02 17:55ID:???
そもそも分かりづらいので最初からこれ出せば良かった>>26の日本語訳
fgets
http://jp.php.net/manual/ja/function.fgets.php
fread
http://jp.php.net/manual/ja/function.fread.php
0030なると02/04/02 18:22ID: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>
■ このスレッドは過去ログ倉庫に格納されています