【PHP】自作スクリプト発表会
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/03/30 11:55ID:M/C/V7hb初心者が書いた入門スクリプト、ベテランが書いたすげースクリプト。
発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。
PHPが使える無料サーバ情報(レッツPHP!):
http://php.s3.to/php/
0370nobodyさん
2005/12/17(土) 11:11:33ID:???少佐就職先決まった?
それとpyaみたいな画像アプロダ完成度高くなったね。
ただ、まんまpyaなのでどこで差をつけられるかが重要かと。
0371nobodyさん
2005/12/17(土) 11:12:59ID:???バレた(;゚д゚)
相変わらずクソ汚いソースで、そろそろ自分でも理解できなくなってきました。
僕はクラスなんて知らないので毎度セコい書き方でごまかしてますorz
/*どうでもいいけど、昨日ようやく就職が決まりました。
どんだけ時間かかってるんだ(´゚w゚`;)*/
0372nobodyさん
2005/12/17(土) 11:15:43ID:???あ、書いてる間に書き込みが…
あくまで「pyaみたい」であって、それ以上のものはとても作れません。
というか、以前のやつより劣化してます。
見た目がちょっとマシになったかな?ぐらいでw
しかし同じもの書くのは飽きてきたので、そろそろペースが落ちてきましたorz
0373nobodyさん
2005/12/17(土) 13:00:25ID:zD/7oFyE晒して!
0374373
2005/12/17(土) 13:00:54ID:???スマソorz
0376nobodyさん
2005/12/17(土) 22:11:04ID:???ちゃいますw
前々から行こう行こうと思ってたとこです。
ソースはこの一番ショボいやつを見せましたw
ttp://php-script.no-ip.org:525/
0377nobodyさん
2005/12/18(日) 10:15:18ID:???0378nobodyさん
2005/12/18(日) 13:05:17ID:???そんなジンクスがあるんすか…
雑談だけじゃ怒られそうなので、昨日20時間ぐらいかけて書いたものを…
ttp://sv1.no-ip.org:9999/mns/
0379nobodyさん
2005/12/18(日) 14:40:09ID:???0380nobodyさん
2005/12/18(日) 19:54:20ID:???4のクラスの糞っぷりはもう・・
0381nobodyさん
2005/12/19(月) 02:22:48ID:???0382nobodyさん
2005/12/19(月) 03:42:14ID:???0383nobodyさん
2005/12/19(月) 12:40:50ID:???すまそ、ダウンロードのリンクははずしました(;゚д゚)
>>382
まだまだです(´゚д゚`)
現在80%ぐらい完成かなぁと思ってるんですが、
残りの20%が携帯の絵文字と最終確認です。
しかしさっぱりわからないので放置してますw
ちなみに、うぷえもんという名前は
ttp://pc8.2ch.net/test/read.cgi/hp/1126154615/244-256
で決めてもらいましたw
0385nobodyさん
2005/12/19(月) 19:23:41ID:???//URL自動リンク
function Auto_HyperLink_Tags($somevar){
$URLSearch="/(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/";
preg_match_all($URLSearch, $somevar, $Matches);
$Search=$Matches[0];
foreach( $Search as $val){
$Replace[]="<a href='{$val}'>{$val}</a>";
}
$result=str_replace($Search,$Replace,$somevar);
return $result;
}
?>
0386nobodyさん
2005/12/19(月) 19:52:44ID:???//URL自動リンク
function Auto_HyperLink_Tags($somevar){
$URLSearch="/(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/";
preg_match_all($URLSearch, $somevar, $Matches);
$Search=$Matches[0];
foreach( $Search as $val){
$Replace[]="<a href='{$val}'>{$val}</a>";
}
$result=str_replace($Search,$Replace,$somevar);
return $result;
}
$a=Auto_HyperLink_Tags("http://example.com/<br>http://example.com/");
print $a;
0387nobodyさん
2005/12/19(月) 22:40:49ID:???>残りの20%が携帯の絵文字と最終確認
携帯絵文字はウンコ、携帯厨は氏ねですよ。
バタバタ
〃〃∩ _, ,_
⊂⌒( `Д´) < はやくうぷえもん頂戴
`ヽ_つ ⊂ノ
0388nobodyさん
2005/12/20(火) 11:35:10ID:???友達にアイコンを描いてもらってるので、もうちょい待ってください(「・ω・)「
携帯の絵文字はほっといて、とりあえず版のソースをそのうち出しますorz
0389nobodyさん
2005/12/20(火) 17:59:17ID:???0391385
2005/12/21(水) 19:28:39ID:???いきなりバグだ…orz
どうも同じURLだとなるみたいなんだけど…
なぜだ、分からん。str_replaceの挙動?
0393nobodyさん
2005/12/24(土) 19:28:03ID:???http://life.my.land.to/send_mail.zip
0394nobodyさん
2005/12/25(日) 00:57:04ID:???mb_language( "ja" ) の後に mb_internal_encoding( "SJIS" ) とした方がいいと思う。
あと、body と subject の JIS 化はいらない。
配列をコンマ区切りにするのはちゃんと関数があるのでそれを使うべき。
join( ", ", $this->cc ) って感じで。
to cc bcc を追加する関数は
function to( $to ) {
$this->to[] = $to;
}
でいいと思う。
0396393
2005/12/25(日) 10:38:10ID:???394の指摘を変更と、コンストラクタがとんちんかんな事をしてたの修正。
あと、「body と subject の JIS 化」を解除したら、
漏れの環境ではsubjectが化けるようなので、それは保留。
0397394
2005/12/25(日) 16:35:03ID:???ちゃんとメアドが存在してるかどうか。
メアドが無くても、最低限、サーバーが存在してるかどうか。
function Check( $address ) {
$flag = FALSE;
list( $user, $host ) = preg_split( "/@/", $address );
unset( $user );
$ip = gethostbyname( $host );
if( preg_match( "/^[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}\.[\d]{1,3}$/", $ip ) ) {
$flag = TRUE;
}
return $flag;
}
これをアドレスを追加するメソッドに組み込んで、TRUE ならアドレス追加、ってことにすればいいと思う。
0398394
2005/12/25(日) 16:39:13ID:???しなきゃならんときがあるので、メール送信をソケットで行う関数を作ってる。
さすがにこれは悪用できるので晒さないけど。
あぁそうそう。
基本的なことだけど、クラス変数名とメソッド名は分けた方がいい。
var $body;
function SetBody( $body ) {
}
こういう感じで。
また、body の追加だけど、1 行追加タイプにするほうがいいかも。
function body( $body ) {
$this->body .= $body . "\n";
}
これくらいかなぁ。
0399393
2005/12/25(日) 18:11:12ID:???なるほどねぇ。早速修正してうpした。
toやらccやらbccやらを一つの関数にして、細かいとこ手直ししたお。
ttp://life.my.land.to/send_mail.zip
ってクリスマスに何してんだ…orz
0400394
2005/12/25(日) 18:56:06ID:???クラス変数の宣言時に初期化しておいて、コンストラクタで mb をセットしたらいいかも。
var $from = '';
var $body = '';
var $subject = '';
function send_mail() {
mb_language( 'Japanese' );
mb_internal_encoding( 'SJIS' );
}
また、メールの追加ヘッダはきちんと書いた方がいいね。
\n じゃなくて \r\n にして。
これでメソッド名をわかりやすくしてやると、かなり使い勝手いいかも。
あ、send_mail.php の方だけど、$obj->cc = file( 'xxx.txt' ); はやめた方がいい。
PHP4 には private の概念が無いからクラス変数を直接操作できるけど・・・
0401nobodyさん
2005/12/25(日) 22:14:55ID:???俺にはちんぷんかんだけど(^ω^;)
0402nobodyさん
2005/12/25(日) 23:28:55ID:???0405393
2005/12/26(月) 16:12:40ID:???>>402 理由説明してくれてるじゃないか。
で、バージョンうp
・コンストラクタ変更
・追加ヘッダ記述修正
・メソッド名変更
・host_exists()の機能にメールアドレスかどうかのチェックも入れた。
・send()で結果報告が返ってくるようにした。
良ければ使ってやってください。
0407394
2005/12/26(月) 21:47:54ID:???メールサーバーに送信データを投げれたかどうかしかわからない。
メールが送信されたかどうかは判別できないのよね。
まぁ普通はメールサーバーに投げれたら、メールは送信できるけど。
このクラスは結構使いやすいんじゃないかな。
こうした方がいい、ってのはもう無いはず。
後は俺の自己満足で。
SetBody1 ってメソッドだけど、俺なら SetBodyln にするかな。
Java を見習って。
これはほんとに自己満足なんで、どーでもいいとこやけど。
393、お疲れ様でした。
0408nobodyさん
2005/12/26(月) 22:20:25ID:???あとは少佐のうぷえもん完成を松とするかw
0409nobodyさん
2005/12/26(月) 22:21:08ID:???俺ならSetXXXのメソッドはAddXXXにするなあ。
FromとSubjectはSetでわかるけど、Toや本文は追加じゃん。
あとはSetMailに配列でアドレスを渡せるように出来たら嬉しい。
Send(string from, array to, string subject, string message)
的なシンプルなインターフェースもあると便利な時もあるかも。
以上、ワガママでした。
0410nobodyさん
2005/12/27(火) 00:45:54ID:???何百と送信先があるときにいちいちgethostbyname()するのはwebアプリでは
待てんからチェックしないオプションを付けるといいかもね。
0411393
2005/12/27(火) 13:00:12ID:???mb_send_mailの結果>
そうなんだよね。あったら使いやすいかなって。
本当にお世話になりました。
どうみても先生です。本当にあr)ry
>>409
メソッドはAddXXX>
漏れも悩んだんだよねぇ。どっちかに統一した方がいいと思ってさ。
もしくは、上書きと追加で別に作った方がいいのだろうか?
SetMailに配列>
だよね!それやろう。
>>410
gethostbynameオプション>
間違いないね!それやろう。
0412nobodyさん
2005/12/27(火) 14:42:59ID:???便利だな!
ありがとん。
自分もここでスクリプト発表出来るように今から勉強します。
ノシ
0413393
2005/12/27(火) 16:26:00ID:???使ってやってくだされ!がんばってー
で、バージョンうp
http://life.my.land.to/send_mail.zip
・メソッド名変更
・SetMail()を配列でもOKなようにした。
・アドレスチェックするかどうか選べるようにした。
・重くなった希ガス…
つかいやすいかなぁ(´・ω・`)
0414nobodyさん
2005/12/27(火) 17:06:58ID:???今はアイコンを待ってるだけです。
もう絵文字はわからんから諦めました('A`)
次はこんなもんを作り中です。
ttp://sv1.no-ip.org/minilog/
完成しない可能性が高いけど(;゚д゚)
0415nobodyさん
2005/12/27(火) 18:38:42ID:???乙 俺だけかもしんないけど重さは感じないよ
>>414
少佐すげー 俺、mt使いだけど比べてどうなん?
minilogの特徴あったら教えて
それとね、前に国連式みたいなアプロダあったやん
あれ「CGI探してます」スレ等でも需要度高いから復活きぼん
0416少佐 ◆tkyK4yl1H6
2005/12/27(火) 19:04:48ID:???>>415
ありがとうw
しかし、MTと比較しようとするのが(ry
minilogの特徴:ショボい
どんなスクリプトでもそうだと思うんですけど、
メインページ : 管理ページ = 2 : 8
ぐらいの比率ですよね。
ということで、まだ2割しかできてません('A`)
あぷろだは↓にあります。
ttp://sv1.no-ip.org/d/?q=node/1
0417nobodyさん
2005/12/28(水) 20:17:56ID:???厳しい(><)
さくらもXREAも無理じゃないですか!
0418nobodyさん
2005/12/28(水) 20:18:33ID:???0419nobodyさん
2005/12/28(水) 20:39:28ID:???適当に開いて読んでるけど
up_check.php
7行目でextractしているのに、10, 11行目で$_POSTを使うのはなぜ?
9行目、htmlspecialcharsは不要。というかしちゃいけない気が。(例えばtest&test.txtならtest%quot;test.txtになって、44行目pathinfo($_FILES['upload_file']['name'])でNo such fileで落ちる)
0420少佐 ◆tkyK4yl1H6
2005/12/28(水) 21:46:21ID:???MySQL4.1以上ってのは適当に書いてます(;゚д゚)
環境が無いので動作確認してないってだけです。
insertとdeleteとcreate tableとdrop tableとupdateしか使ってないんで、
たぶんMySQL3.0でも大丈夫なんじゃないでしょうかw
>>419
なるほど、参考になります。
9行目はhtmlspecialcharsを削除しておきました。
7行目は特に問題ないと思うので勘弁してください。
extractという関数を知って、喜んで使っただけだと思われます(;゚д゚)
0422nobodyさん
2005/12/29(木) 11:22:15ID:???http://support.sakura.ad.jp/support/web/manual/tech/cgi/cgi01.html
さくらってPHPもMYSQLも禁止じゃない?
0423nobodyさん
2005/12/29(木) 11:30:17ID:???それは ライトプラン(月額125円)の話しだろ?
スタンダードプラン(月額500円)以上はPHP も MySQLも使用可能。
0424nobodyさん
2005/12/29(木) 11:32:19ID:???http://www.sakura.ne.jp/rs/03_01.shtml
http://www.sakura.ne.jp/rs/03_04.shtml
0425nobodyさん
2005/12/29(木) 11:33:21ID:???0427nobodyさん
2005/12/31(土) 03:16:08ID:???つーか年末なのに暇なの?(・ω・` )
0428nobodyさん
2005/12/31(土) 10:47:55ID:QV55QLG6自前でSAXライクなXML処理スクリプトを作りました。
http://trashtoy.dw.land.to/works/altsax.zip
使い方はサンプルソースを見てください。
サンプルは以下の URL にあります。
http://trashtoy.dw.land.to/works/altsax/sample.php
0429428
2005/12/31(土) 10:57:55ID:???このモジュールは、まだ XML宣言・ドキュメントタイプ宣言・コメント・PI・実体参照 etc
を扱うことが出来ません。。。(´・ω・`)
0430nobodyさん
2006/01/04(水) 16:19:48ID:PpH7t0Dm自動で収集するプログラムないかな?
0432nobodyさん
2006/01/04(水) 21:42:52ID:???0433nobodyさん
2006/01/04(水) 22:50:08ID:yE7kg+Crポートスキャンとかしちゃってさ。
0434nobodyさん
2006/01/05(木) 11:33:32ID:???0435nobodyさん
2006/01/05(木) 14:37:37ID:???$bbq = explode(".",$addr);
$bbq = gethostbyname($bbq[3].".".$bbq[2].".".$bbq[1].".".$bbq[0].".niku.2ch.net");
if($bbq == "127.0.0.2"){ $bbq = 1; }
if($bbq){ error("公開プロキシ規制中!"); }
これでよろし。
0436nobodyさん
2006/01/05(木) 18:43:13ID:???0437nobodyさん
2006/01/05(木) 18:47:15ID:???0438nobodyさん
2006/01/05(木) 18:47:59ID:???っ 鮠の蒲焼き
0439nobodyさん
2006/01/08(日) 17:27:17ID:???0442少佐 ◆tkyK4yl1H6
2006/01/10(火) 15:45:26ID:???http://sv1.no-ip.org/minilog/index.php?eid=5
汚すぎて読めないとかヘタクソとかバカとかあほとかは自覚してるので勘弁してください(´゚w゚`;)
もはや自分でも読めませんorz
0443少佐 ◆tkyK4yl1H6
2006/01/10(火) 15:45:56ID:???0444nobodyさん
2006/01/11(水) 01:04:38ID:???じっくりことこと弄ってみるよ
ありがとぅ
0446nobodyさん
2006/01/12(木) 19:41:35ID:???どれどれ…
0447nobodyさん
2006/01/16(月) 18:35:43ID:???0448nobodyさん
2006/01/18(水) 10:07:50ID:d+ZzOlPl0449nobodyさん
2006/01/18(水) 10:28:42ID:???class jojo{
$damage=0;
function atack(){
while(true){
echo "無駄";
$damage++;
}
return($damage);
}
}
0450nobodyさん
2006/01/18(水) 12:37:18ID:???0451nobodyさん
2006/01/21(土) 12:59:16ID:rfPmX8eKつまんねーよカス
0452作ってみたわけだが@動作未確認
2006/01/21(土) 13:25:59ID:???header("Content-Type: text/html; charset=Shift_JIS");
$aryTitle = array("大吉","中吉","小吉","吉","凶");
$aryKuji = array(
"大吉" => "残念、大吉を出すために運を使ってしまった",
"中吉" => "ラッキー、今日はいいことありますよ♪",
"小吉" => "小さな幸せ",
"吉" => "つまらん一日を…",
"凶" => "引き籠る");
shuffle($aryTitle);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>おみくじ</title>
</head>
<body>
<h1>おみくじ</h1>
<dl>
<dt><?php print($aryTitle[0]; ?></dt>
<dd><?php print($aryKuji[$aryTitle[0]); ?></dd>
</dl>
</body>
</html>
0453nobodyさん
2006/01/21(土) 14:59:36ID:???> Parse error: parse error, unexpected ';' on line 20
> Parse error: parse error, unexpected ')', expecting ']' on line 21
ここはnotepad.exeじゃないぞw
0454作ってみたわけだが@動作確認済み
2006/01/21(土) 15:14:51ID:???スマソ訂正:
<?php
header("Content-Type: text/html; charset=Shift_JIS");
$aryTitle = array("大吉","中吉","小吉","吉","凶");
$aryKuji = array(
"大吉" => "残念、大吉を出すために運を使ってしまった",
"中吉" => "ラッキー、今日はいいことありますよ♪",
"小吉" => "小さな幸せ",
"吉" => "つまらん一日を…",
"凶" => "引き籠る");
shuffle($aryTitle);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>おみくじ</title>
</head>
<body>
<h1>おみくじ</h1>
<dl>
<dt><?php print($aryTitle[0]); ?></dt>
<dd><?php print($aryKuji[$aryTitle[0]]); ?></dd>
</dl>
</body>
</html>
0457nobodyさん
2006/01/21(土) 23:10:58ID:???ま、どうでもいいけどさ
0458nobodyさん
2006/01/22(日) 00:32:05ID:???0459nobodyさん
2006/01/22(日) 02:08:31ID:???俺なら添え字を乱数で生成するけど
0460nobodyさん
2006/01/22(日) 02:16:54ID:???0461作ってみたわけだが@動作確認済み
2006/01/22(日) 02:43:40ID:???需要ないけどね、このおみくじ…。
0462nobodyさん
2006/01/22(日) 08:45:02ID:???ここって初心者が書いたスクリプトもOKなんでしょ?
こういう雰囲気だと出しにくいよ。
0463nobodyさん
2006/01/22(日) 08:58:32ID:???どっちも歓迎。
まぁ叩かれても諦めずにやれば良い物が書けるようになるさ
0464nobodyさん
2006/01/22(日) 13:00:12ID:???『携帯固有番号対応ホスト抜き出し関数』
function Get_USER_HOST(){
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host == "" || $host ==$addr){
$host = gethostbyaddr($addr);
}
if(ereg("docomo.ne.jp",$host)){
$serial = $_SERVER[HTTP_USER_AGENT];
$serial = explode("ser",$serial);$serial = $serial[1];
$serial = substr($serial, 0, 11);
}
if(ereg("ezweb.ne.jp",$host)){
$serial = $_SERVER[HTTP_X_UP_SUBNO];
$serial = str_replace(".ezweb.ne.jp","",$serial);
}
if(ereg("jp-[a-z].ne.jp",$host)){
$serial = $_SERVER[HTTP_USER_AGENT];
$serial = explode("SN",$serial);$serial = $serial[1];
$serial = substr($serial, 0, 11);
}
if($host == "p2.2ch.net"){
$serial = $_SERVER[HTTP_USER_AGENT];
$serial = explode("p2-client-ip: ",$serial);$serial = $serial[1];
$serial = explode(";",$serial);$serial = $serial[0];
}
$USER_HOST['host'] = $host;
$USER_HOST['serial'] = $serial;
return $USER_HOST;
}
0465nobodyさん
2006/01/22(日) 13:18:34ID:???0466nobodyさん
2006/01/22(日) 13:43:40ID:???0467nobodyさん
2006/01/22(日) 14:24:04ID:???0468nobodyさん
2006/01/22(日) 14:31:40ID:???普通はこう
配列のkeyに日本語よくないねー
<?php
header("Content-Type: text/html; charset=Shift_JIS");
$data = array(
array( '大吉','残念、大吉を出すために運を使ってしまった'),
array( '中吉','ラッキー、今日はいいことありますよ♪'),
array( '小吉','小さな幸せ'),
array( '吉','つまらん一日を…'),
array( '凶','引き籠る')
);
$num = rand( 0, count( $data)-1);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<title>おみくじ</title>
</head>
<body>
<h1>おみくじ</h1>
<dl>
<dt><?php echo $data[$num][0]; ?></dt>
<dd><?php echo $data[$num][1]; ?></dd>
</dl>
</body>
</html>
■ このスレッドは過去ログ倉庫に格納されています