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

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

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

PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/
0558nobodyさん2006/02/15(水) 19:31:58ID:???
//自動リンク改良版
function Auto_HyperLink_Tags($text, $target='_blank') {
if (!empty($text)) {
$search = "(((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://)|(www\.))+(([a-zA-Z0-9\._-]+\.[a-zA-Z]{2,6})|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(/[a-zA-Z0-9\&%_\./-~-]*)?";
return ereg_replace( $search,"<a href=\"\\0\" target=\"".$target."\">\\0</a>", $text);
}else {
return FALSE;
}
}
0559ちんこ先生 ◆Qm364jaZpk 2006/02/16(木) 11:55:20ID:YzGNHh7H
少佐のソースやばいからw


お前がなにしてるかおしえてあげようか?w

つーか一番笑ったのはソースSJISかよwww

レベルひくwwwwwwwwwwwwwどんだけ低いの?

#-------------
@mysql_connect($db_host, $db_user, $db_password);
@mysql_select_db($db);

ここがmysqlにつないでるとこだが、普通こうかく


$conn =@mysql_connect($db_host, $db_user, $db_password) or die("MySQLの接続に失敗しました。");
@mysql_select_db($db, $conn) or die("DB選択時にエラーが発生しました。");


この2行だけでも、こうやってエラー処理をかくよw しかもなんでrequireに@つけてんの?w

超馬鹿じゃんwww どんだけ低レベルwwエラー処理もしてないwww
0560nobodyさん2006/02/16(木) 12:14:14ID:???
>>559
あなたは猿ですか?
0561nobodyさん2006/02/16(木) 12:36:36ID:???
>>559
sjisだと何が悪いんだ
0562nobodyさん2006/02/16(木) 12:48:58ID:???
559はEUCしか知らない低脳
0563nobodyさん2006/02/16(木) 13:03:24ID:???
このスレで完璧を求めるのはおかしいだろ
まずは自分の人格のエラー処理をコーディングしてらっしゃい
0564nobodyさん2006/02/16(木) 13:20:58ID:???
>>557
ありが�d
&の使い方が解りませぬ
return (first_process() === true && second_process() === true && third_process() === true)
と等価ですか?
0565ちんこ先生 ◆Qm364jaZpk 2006/02/16(木) 13:29:18ID:YzGNHh7H
雑魚が傷をなめあうなよキショいからwww

つーかお前ら少佐以下なんだろ?www死ねよ
0566ちんこ先生 ◆Qm364jaZpk 2006/02/16(木) 13:43:27ID:???
しかもここ初心者スレじゃなかったしww

なんだこれwww
0567nobodyさん2006/02/16(木) 13:56:47ID:???
ちんこ先生 ◆Qm364jaZpk
↑
そろそろこの池沼をNGにぶち込むか
05685572006/02/16(木) 14:01:03ID:???
>>564
間違えた。よく調べてみたら、& は PHP ではビット積の演算子だったわ。
C や Java と同じ感覚で書いたもんで・・・。
申し訳ない。 >>557 の & は && に置き換えてください。

意味としては、>>564 で合ってると思います。
ただし、この場合はもしも first_process() が FALSE を返した場合、
second_process() と third_process() を処理せずに終了します。
first_process() の結果いかんに関わらずに続きの関数を実行させたい場合は

function hoge(){
    $success = TRUE;
    $success &= first_process();
    $success &= second_process();
    $success &= third_process();
    return $success;
}

みたいに書いたほうがいいかな。
0569ちんこ先生 ◆Qm364jaZpk 2006/02/16(木) 14:02:53ID:???
いやいや教えてもらえるだけ喜べよwww

なんも知らないくせに少佐非難してるやつよかマシだろ
0570ちんこ先生 ◆Qm364jaZpk 2006/02/16(木) 14:06:49ID:???
ってかまったくincludeもされてないソースで発表会されてもね。

初心者スレで書いたら?
0571nobodyさん2006/02/16(木) 14:21:22ID:???
あぼーん
0572nobodyさん2006/02/16(木) 14:35:11ID:???
> ただし、この場合はもしも first_process() が FALSE を返した場合、
> second_process() と third_process() を処理せずに終了します。
これは知らなかった。チューンできるんだー。
05735572006/02/16(木) 14:36:26ID:???
>>559
条件反射的に Shift_JIS に反応するのはどうなんですかね?
確かに Shift_JIS はマルチバイト文字の中に0x7F以下のコードを含む場合があるから、
文字列や正規表現に日本語を含むようなスクリプトに Shift_JIS を採用すると危険な場合があるけど
逆に言えば、そういう危険性さえなければ Shift_JIS でも全く構わないということになる。
Windows付属のエディタで編集できるっていう強みもあるしね。(まぁ利点といえばそのぐらいしかないが)

あと、言わせてもらうとそのコードもめっちゃレベル低い。
そのエラー処理は、あくまでもシステム側の都合であって、ユーザー側の立場になってない。
もしもあんたが Java をやったら、きっと、コンパイルエラーを回避するためだけの
try 〜 catch とかやるんだろうな。
当然 catch の中身が空だったり適当な System.out.println だけだったり。
(Java 知らない人には訳の分からない話で申し訳ない)

ところで、error_reporting とか set_error_handler とか trigger_error とか、知らないの?
そういうのをフル活用すれば、

@mysql_connect($db_host, $db_user, $db_password); 
@mysql_select_db($db); 

だけでも全然アリなんだけど。
0574nobodyさん2006/02/16(木) 15:58:37ID:???
>>557は無性に説得力あるな
0575nobodyさん2006/02/16(木) 18:24:09ID:???
ちんこなんてコテつける奴とは格が違うって感じだなw
0576nobodyさん2006/02/16(木) 18:33:35ID:???
リアルで相当ダメージ食らってるな>ちんこ先生

失業でもしたか?w
05775422006/02/16(木) 18:57:01ID:???
言うだけもあれなんで、恥ずかしいけどソース晒しとく。
俺が趣味で作って使ってるクラスの抜粋(一部改変)だけど。(PHP5系,MySQL4.1系)
@は使ってないよ。error_reporting = E_ALL、display_Errors = Off、log_errors = Onで、
全部エラー用ログファイルに書き出してる。ユーザー画面には簡単なエラーメッセージ出してるだけ。
エラー時の挙動は全部Db_Error()の中で書いてる。(中まで貼ると長いので↓には書いてない)
DB接続部分って普通こんな感じじゃない?正解はないけど。知識・技術共にレベル低くてごめん。
---------------------------------------------------------
private $err = true;
private $errmsg = null;
public function Db_Connect() {
$this->dbcon = mysql_connect('HOST', 'USER', 'PASSWORD');
if ( !$this->dbcon ) {
$this->err = false;
$this->errmsg = "DB接続エラー";
} else {
$this->dbname = 'DB_NAME';
//MySQL固有
if ( !mysql_select_db($this->dbname, $this->dbcon) ) {
$this->err = false;
$this->errmsg = "DB選択エラー";
} else {
//文字化け対策
$this->Db_Query("set names ujis");
}
}
//エラー画面へごー
if ( !$this->err ) {
$this->Db_Error();
}
}
----------------------------------------------------------
抜粋だから分かりづらくてすんません。あと、俺は少佐非難したつもりはないぞ。エールを送ったつもり。
0578nobodyさん2006/02/16(木) 19:28:03ID:???
highlight_file ( 'Qm364jaZpk.php');

切実に希望します。
くだらなそうだけど。
0579nobodyさん2006/02/16(木) 21:40:03ID:???
ここって自分のスクリプト晒して叩いてもらうことで
スキルアップを計るスレじゃないの?
0580nobodyさん2006/02/16(木) 21:55:44ID:???
>>579
>>1
0581少佐 ◆tkyK4yl1H6 2006/02/17(金) 03:10:06ID:???
ちんこ先生氏の言ってることはもっともだと思います。
言い方はともかくとしてw
文字コードについても全然知らず、「なんとなく日本語ってsjisがよさそうじゃない?」みたいな感じで使ってました。
>>557氏の言われるようなことは露知らず。
(何がいいんでしょうか??時と場合による?)
mysql_connectとかもおっしゃる通りです。
requireに@がついてるのは特に意味は無いんですが、関数にはほぼすべて@をつけるクセがついてます。
特に害はないですよね…?たぶん。
こうして怒られながらも、参考になることをいろいろ教えてもらえるのはありがたいです。
0582nobodyさん2006/02/17(金) 04:46:13ID:???
 ∧_∧
. (。・_・) 少佐はやさしいのぅ
 ゚し-J゚
0583nobodyさん2006/02/17(金) 05:09:16ID:???
今書いている関数の構造

foreach(){
 while(){
  foreach(){}
  foreach(){
   foreach(){}
  }
 }
}

ま、いいか。。。
0584nobodyさん2006/02/17(金) 07:41:14ID:???
>>581
害?あるよ。エラー処理をしなくなる。
基本EUC-JPで国際化とか考えるならUTF8でって感じ。

一度、@を全部削除して、errot_reporting(E_ALL);してみれ。
多分、すごいことになるから。
もし、ならなかったら少佐は天災
0585nobodyさん2006/02/17(金) 08:34:55ID:???
つうかrequireでエラー起きたらfatal errorでスクリプト止まるから@付ける意味がわからん
0586nobodyさん2006/02/17(金) 09:57:59ID:???
>>581 >>584
「エラー処理をしない」というよりは、「エラーを通知しなくなる」と言ったほうが正しいかな。
例えば下のスクリプトを動かしてみると、エラー処理自体はきちんとしてくれるのが分かるかと。

<?php
function print_error($code, $error_message){
    print($code.':'.$error_message);
}
function zero_divide(){
    $x = 1 / 0;
}
set_error_handler('print_error');
@zero_divide();
?>

>>584 の言うとおり、error_reporting(E_ALL) にしておくのはすごくお勧めです。
見えないバグを発見できるし、デバッグの労力がグンと減るので。
逆に、本番で使う際には error_reporting(0) にしておかないとみっともないですが。
0587nobodyさん2006/02/17(金) 11:26:17ID:???
>577

$this->dbcon = mysql_connect('HOST', 'USER', 'PASSWORD');
if ( !$this->dbcon ) {
$this->err = false;
$this->errmsg = "DB接続エラー";

俺は4使いだから5はよくしらないけど
@mysql_connect
しないと
$this->errmsgまでいかない気がする
あと
$this->errつーんだから
$this->err = TRUE;
のがよくなくね?
0588nobodyさん2006/02/17(金) 12:12:24ID:???
>>587

@なしでもエラー処理に入りますよ。
php.iniの設定の違いだと思います。
たぶんdisplay_errors = Onにされているのではないでしょうか。

あとerrの値に関しては、確かにそうかもしれません。
0589nobodyさん2006/02/17(金) 12:20:05ID:???
ああ、Onにすると駄目なのか
0590nobodyさん2006/02/17(金) 14:12:43ID:???
OnにしてもDB接続のエラーだったらエラー吐くけど処理は止まらなかったような
設定で変えれるのかな
0591nobodyさん2006/02/17(金) 16:20:32ID:???
違うスレでやれ
0592nobodyさん2006/02/17(金) 17:10:29ID:???
>>591
スレ違い
0593nobodyさん2006/02/17(金) 19:20:50ID:???
>>582
自演して株を上げようと操作しているように見える。
まぁ、物は作ってるから、PHPバージョンのKENTってとこか。
0594nobodyさん2006/02/17(金) 20:19:04ID:???
>>593
てんめぇ オレの少佐を自演扱いしたら殺すぞ
少佐の人気に嫉妬してる暇があったら、さっさとてめぇのブツ晒せやボケ
この役立たずめが!
0595nobodyさん2006/02/17(金) 20:31:23ID:???
音楽評論家がCDを出さないのと似てますね
語ることだけはできるの
0596nobodyさん2006/02/17(金) 21:07:53ID:???
>>594
通報しますた
0597nobodyさん2006/02/17(金) 21:08:59ID:zk5HwoZg
>>594
../⌒  ヽ
(     ヽ
 ヽ   ノ ヽ
   ゞ 、   丶
     ヽ ノ  \          _ _,__ -' ─ ─ ,、  _
    |\_ ノ\      , '´/_ヽ_ヽv /: / ヽ`、
  /⌒\        丶   / /  ̄ヽ-、___ ,-r'  ̄ ̄  ヽ.
 │  \  人  |/⌒ヽ | !     ヽーーーーー |     :::::|
 /    \    /    | | !      ! r ひ 、. !     :::::::|
(  \   ヽ  /    / | !      !  ノ:::\. !     ::::::::|
(       |  /   )  |      ! (::::T::::: !    ::::::::::|
 ヽ \  ヾ 丿(( ̄)/   'i:;;;    `'ー--‐‐'   ::::::;;;:ノ
  \  ヾ丿  ヽソ      `''─ _      _. ─''´
    ヽ ノ _ __/             ̄ ̄ ̄
0598名無しの報告2006/02/17(金) 21:55:46ID:Vjg5tdKB
>>594
http://qb5.2ch.net/test/read.cgi/sec2chd/1138867175/268
0599名無しの報告2006/02/17(金) 22:10:48ID:???
■犯罪予備軍養成掲示板=にちゃんねるの裏事情事件簿■
http://www.doblog.com/weblog/myblog/22179
■2ちゃんねる被害者ストレス発散板■
http://r.netabbs.info/uxgmswe/index.html
■2ch裏の歴史と噂話と真相
http://www.geocities.jp/tokumei_tokumei70/top_index.html
■削除要請@2ch掲示板@スレッド一覧
http://qb5.2ch.net/saku2ch/subback.html
■犯罪者生産装置 「 2チャンネル 」■
http://www.geocities.jp/ariradne/2ch.html
■被害者の声1〜2■
http://sak2-2.tok2.com/home/zhpkfmh/newpage6.htm
■元2chスタッフ玄さんの日々是好日から■
http://jsimin.at.infoseek.co.jp/opinion/
■アンチ2chリポーター・AICO■
http://arvel7aico.btblog.jp/
■2ch被害者達の叫び声■
http://r.netabbs.info/test/read.cgi/uxgmswe/1111504554/
■2ちゃんねらー屁理屈(暴言)集■
http://r.netabbs.info/test/read.cgi/uxgmswe/1109255122/
■2ch信者(煽り屋)への返答例■
http://r.netabbs.info/test/read.cgi/uxgmswe/1121652904/
■2ちゃんねる...その正体■
http://www.doblog.com/weblog/myblog/61447
0600nobodyさん2006/02/18(土) 01:33:27ID:???
少佐、>>594に差し入れぐらい持っていってやれよな。
0601nobodyさん2006/02/18(土) 01:49:28ID:???
ま た ち ん こ か
0602少佐 ◆tkyK4yl1H6 2006/02/18(土) 02:58:11ID:???
なんかえらいことに(´゚w゚`;)
皆さんの言われるように、僕はPHPについての知識なんてミジンコほどしかありませんので、
>>594氏のように言ってもらえるのはとてもありがたい反面、重荷にもなります。
#このスレで自演したことは無いのにそう言われたりw
僕はただの初心者ですので、「あーまたくだらんもん作ってやがるなぁ」と思ってもらえれば満足です。
しばらくは返答を求められない限り傍観者になりますので、マターリお願いします。

#応援してくれた方々、ありがとー。
0603nobodyさん2006/02/18(土) 03:22:10ID:???
好きだ少佐(*´Д`)´`ア´`ア
0604nobodyさん2006/02/18(土) 03:41:21ID:???
他のスレではあるのねw
0605nobodyさん2006/02/18(土) 08:55:58ID:???
少佐がいるから俺ガイル
0606nobodyさん2006/02/18(土) 12:00:02ID:???
もうphpKENTでいいじゃん
しょぼいところも似てる
0607nobodyさん2006/02/18(土) 12:02:47ID:???
>>606
死ね
0608nobodyさん2006/02/18(土) 18:34:46ID:???
ちんこ野郎、毎日イラついてるとこみると失業でもしたのか?
0609nobodyさん2006/02/18(土) 23:50:56ID:???
もとからニート
0610nobodyさん2006/02/19(日) 13:31:56ID:???
役に立たない綺麗なコードと役に立つ汚いコードのどっちが利用者にうれしいか考えてみ
0611nobodyさん2006/02/19(日) 14:16:37ID:???
>>610
別問題だボケ
0612nobodyさん2006/02/19(日) 14:18:28ID:???
別問題ではなく現実問題だ
0613nobodyさん2006/02/19(日) 14:29:54ID:???
少佐ソースで大満足。うぷえもん大好評!!
0614nobodyさん2006/02/19(日) 15:26:57ID:???
その綺麗なコードの物自体が存在してないからな。
文句言うぐらいなら書いて見せろ。
0615nobodyさん2006/02/19(日) 16:34:53ID:???
ここに載せるにふさわしいコード→汚いコード
0616nobodyさん2006/02/19(日) 16:44:30ID:???
汚くたっていい
需要のありそうなものを見せてくれ
0617nobodyさん2006/02/19(日) 17:03:22ID:???
>>549-551
これとか、見やすいし、普通に使えると思うんだけど。
0618nobodyさん2006/02/19(日) 17:23:41ID:???
>>522
これも悪くないと思うよ
0619nobodyさん2006/02/19(日) 17:26:00ID:???
>>610
役に立つ綺麗なコード
0620nobodyさん2006/02/19(日) 17:27:37ID:???
ツマンネ
0621nobodyさん2006/02/19(日) 17:29:28ID:???
現実問題だ
0622nobodyさん2006/02/19(日) 17:29:36ID:???
flockしてない時点で(ry
0623nobodyさん2006/02/19(日) 20:36:55ID:???
おまえら全員>>1を読め。くだらん議論してくれなんて書いてないだろ
0624nobodyさん2006/02/19(日) 20:42:04ID:???
そうだね
で?
0625nobodyさん2006/02/19(日) 23:06:12ID:???
原因は住人があまりにソースを貼らないからだろ?
0626nobodyさん2006/02/19(日) 23:08:14ID:???
で?
0627nobodyさん2006/02/20(月) 09:25:06ID:???
イチャモンつけるやつはただ荒らしたいだけだろ
何かつくれyp
0628nobodyさん2006/02/20(月) 16:22:52ID:???
>yp
MMO厨はお帰りください
0629nobodyさん2006/02/20(月) 23:18:20ID:???
ちんこがいなくなればこのスレも平和
0630nobodyさん2006/02/23(木) 07:43:17ID:???
俺も糞スクリプト晒すか
0631nobodyさん2006/02/25(土) 10:06:02ID:???
wktk
0632nobodyさん2006/02/26(日) 12:17:54ID:???
hosyu
0633nobodyさん2006/02/26(日) 13:12:17ID:???
少佐、メールでわがまま言ってもいい?
0634nobodyさん2006/02/26(日) 21:38:13ID:???
ドウゾー
0635nobodyさん2006/02/28(火) 12:40:08ID:???
  ☆ チン

        ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・)<  ソースまだー?
             \_/⊂ ⊂_)_ \_______
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
        |           .|/
0636nobodyさん2006/02/28(火) 13:48:47ID:???
しばらくこのスレは放置する
空気読めない厨房ウザすぎ
0637nobodyさん2006/02/28(火) 20:04:12ID:???
>>636
まあ、春休みだしな。
0638nobodyさん2006/02/28(火) 21:01:15ID:???
>>636-637

キモヤローは二度と来るな
0639nobodyさん2006/03/02(木) 07:22:49ID:???
>>638
(゚д゚)<シメジ
0640ちんこ先生 ◆Qm364jaZpk 2006/03/05(日) 01:26:43ID:Ve31vcRU
じゃ、さらすかな
0641nobodyさん2006/03/05(日) 11:33:31ID:???
640 名前:あぼーん[あぼーん] 投稿日:あぼーん
あぼーん
0642nobodyさん2006/03/05(日) 11:34:05ID:???
>>ちんこ
よっしゃこい
0643nobodyさん2006/03/06(月) 04:08:43ID:???
>>559
携帯がSJISであることを考えた上じゃないのか
06445572006/03/06(月) 05:15:51ID:???
>>557, >>568 を書いた者ですが、
>>568 が間違っていることが判明しました。
& はビット演算子だけでなく、論理値の AND 演算子としても使われるようです。

function hoge(){ 
    return first_process() & second_process() & third_process(); 
} 
で、はじめ2つの関数の返り値に関わらず third_process までちゃんと評価されます。失礼しました。
0645nobodyさん2006/03/06(月) 11:38:58ID:???
確認するくせつけような
06465572006/03/06(月) 18:02:34ID:DiuskzlQ
>>645
仕様を読んだ限りでは & がビット演算子ということしか書かれていなかったので
よくよくテストをせずに早合点してしまった。十分反省している。

ところで、最近停滞ぎみっぽいので燃料を投下してみます。
http://trashtoy.dw.land.to/app/memo/memo.zip

はじめはサイトの更新履歴の公開・管理システムのつもりで作ったけど
イベントの告知や簡易スケジュール帳など、応用範囲は広いと思う。

詳しくは readme.txt を見るべし。
0647nobodyさん2006/03/06(月) 18:49:45ID:???
//2ch互換トリップ生成
function Make_Trip($username) {
//◆を◇に置換
$username = str_replace("◆", "◇", $username);
//$usernameに#が含まれていればトリップ生成
if ( ($pos = strpos($username, '#')) !== false ) {
//usernameの'#'以降を$keyとする
$key = substr($username, ($pos + 1));
//サーバ側文字コードがShift-JISでない場合
if ( ($srvcharset = mb_internal_encoding()) != "Shift-JIS" ) {
//2ch互換トリップにするため「$keyの文字コードを」Shift-JISへ変換
mb_convert_variables("Shift-JIS", $srvcharset, $key);
}
//$keyから$salt生成($saltが2byteに満たないもののために'H.'を足しておく)
$salt = substr($key . "H.", 1, 2);
↓つづく
0648nobodyさん2006/03/06(月) 18:50:37ID:???
//●あほくさエリア突入●
//検索パターン配列(64)生成
$pattern = array();
for( $cnt=0; $cnt<128; $cnt++ ){
//「.」「/」英数字以外を検索パターンとする
if ( ($cnt<46) or ($cnt>57 and $cnt<65) or ($cnt>90 and $cnt<97) or ($cnt>122) ) {
//16進ASCIIコードでの検索パターン文字列を生成
$pattern[] = '/[\\x' . dechex($cnt) . ']/';
}
}
//置換用ベース配列
$replacetmp = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'a', 'b', 'c', 'd', 'e', 'f', '.');
$cnt2 = 0;
//(検索パターンが64通りなのでその数に合わせた配列を用意)
for ($cnt1=0; $cnt1<64; $cnt1++ ) {
$replace[] = $replacetmp[$cnt2];
if ( $cnt2 < 13 ) {
$cnt2++;
} else {
$cnt2 = 0;
}
}
//●あほくさエリア突破●

↓続く
0649nobodyさん2006/03/06(月) 18:51:12ID:???
//$saltに含まれる$patternを、$replace配列内の対応する位置の文字に置換
$salt = preg_replace($pattern, $replace, $salt);
//$saltに含まれる'.','/','0-9','A-Z','a-z'でないものを'.'に置換
$salt = preg_replace('/[^\.\/0-9A-Za-z]/', '.', $salt);
//トリップ生成(生成される文字列は11byte)
$trip = crypt($key, $salt);
//名前部分切り出し(#keyを含まない部分)
$name = substr($username, 0, $pos);
//(名前)+(生成されたトリップの後ろから10byte)を返す
$ret = $name . "◆" . substr($trip,-10);
//#が含まれていない場合
} else {
$ret = $username;
}
//戻り値は「name◆trip」または「name」
return $ret;
}



おわり。無駄が多いです。
0650647-6492006/03/06(月) 18:53:45ID:???
なお、互換確認には

あほにし
えいヴぇっくす

しか使ってないです。
0651nobodyさん2006/03/06(月) 18:54:04ID:???
ごもちゃ箱 http://trashtoy.dw.land.to/ にアクセスしてみましたけど、
どのコンテンツもリンクが見当たらないんですが、、、
06526502006/03/06(月) 19:10:52ID:???
ばかみたいにコメントがいっぱいあるのは、
初心者でもなんとなく処理内容の意味がわかるようにするためです。

もとにした2chトリップ生成ソースは

$salt = substr($key.'H.', 1, 2);
$salt =~ tr/\x3A-\x40\x5B-\x60\x00-\x2D\x7B-\xFF/A-Ga-f./;
$salt =~ s/[^\.\/0-9A-Za-z]/\./g;
$trip = substr(crypt($key, $salt), -10);

の、4行です。
自分はPHP最強房なのでperlよくわかんなかったです。
なので意味の解釈を間違っているかもしれません。
そのへんはperl最強房さんが解説していただけたらとか思ってます。

くだ質で聞こうかとも思ったけど、ここで晒して叩かれたほうが早いと思ったので載せました。
0653nobodyさん2006/03/06(月) 19:28:05ID:???
>>652
コメントの重要性を理解している点は評価できるんですが、
そんなあなたには「粒度」という言葉をプレゼントします。

処理にも、大きい単位から小さい単位までいろいろあるわけで、
すべてのコメントを小さい単位に合わせて書いたら、
ソースコードの見通しが全く見えなくなって、
コメントがないのと同じくらい意味がなくなってしまうのですよ。

あと、コメントの大事なポイントは、
全体の流れの中においてその処理が持っている意味を書くこと。
その処理がどういう動作をしているかは書かなくてもいいです。
そんなことは、PHPの文法が分かる人間だったら誰でも分かるんだから
よっぽど凝っていて複雑なアルゴリズムを書くとき以外には必要ないです。

というわけで、今後はコメントの書き方を要研究すべし。

ソースの中身は面倒なので読まなかったけど、パッと見て思ったのはそんなところ。
0654nobodyさん2006/03/06(月) 19:41:27ID:???
同じく
コメントが無駄すぎるね
0655 ◆gqRrL0OhYE 2006/03/06(月) 19:47:31ID:???
647君のだと、この鳥作れるのかな
0656nobodyさん2006/03/06(月) 19:48:06ID:???
横レスですが>>653
> 全体の流れの中においてその処理が持っている意味を書くこと。
> その処理がどういう動作をしているかは書かなくてもいいです。
意味と動作の具体例みたいなのを教えてください。アホですみません。
0657nobodyさん2006/03/06(月) 20:15:04ID:???
>>656
具体例ねえ。難しいなあ。

とりあえず、参考として、似たようにアルゴリズムが複雑なプログラムのソースコードを
ここでも晒してみるか。Java だけど。ちなみに、以前他の板のスレで晒したものです。

http://trashtoy.dw.land.to/works/PrimeFinder.java

上で偉そうなことを言っておきながら、あまり参考にならないかも。すまん。
■ このスレッドは過去ログ倉庫に格納されています