第二回 自作スクリプト発表会【PHP】
■ このスレッドは過去ログ倉庫に格納されています
00011様
2006/08/21(月) 08:31:27ID:???初心者が書いた入門スクリプト、ベテランが書いたすげースクリプトを発表してね。
予めスクリプトの内容を明記してURLを貼り付けるのがよろしいかと。
マターリ進行でいきませう。
【PHP】自作スクリプト発表会
http://pc8.2ch.net/test/read.cgi/php/1017456911/all
Warning: 発表の場は、学びの場。クレクレ君は他所へ。
0003nobodyさん
2006/08/21(月) 21:07:11ID:???0004nobodyさん
2006/08/25(金) 08:39:59ID:???0006nobodyさん
2006/08/29(火) 12:11:10ID:???【設置場所】 http://example.com/test.php
【ソース】 http://example.com/test.txt
【プログラミング経験】 3ヶ月 / 1年 / 3年
【希望評価スタイル】 悪い部分を指摘して欲しい / 良い部分を指摘して欲しい
【自分の性格】 かかってこいや! / またーり / 叩かれると自殺しちゃうかも
【備考】 B90/W58/H86 です。
0007nobodyさん
2006/09/02(土) 15:43:17ID:???0009nobodyさん
2006/09/23(土) 11:26:27ID:???たとえば、
http://www.livly.com/mypage.php?uid=1Q9u
から
http://www.livly.com/mypage.php?uid=3Q9u
のなかの
http://www.livly.com/item/musikui.swfが含まれているswfを表示するようなスクリプトです、
宜しくお願いします。
0011nobodyさん
2007/02/01(木) 10:19:56ID:NLH+CAqc0012nobodyさん
2007/02/25(日) 14:22:03ID:XAraiK/y0015nobodyさん
2007/02/26(月) 12:13:42ID:???係り受けがおかしい。
本来は「全然〜ない」のような形で全否定を表すのが正しい。
「全然OK」→「全然問題ない」
0016nobodyさん
2007/02/26(月) 17:26:00ID:???頭カチカチだな
0018nobodyさん
2007/03/01(木) 13:01:51ID:vHXjUYFX0019nobodyさん
2007/03/05(月) 19:09:42ID:???0020nobodyさん
2007/03/10(土) 13:55:26ID:???0021晒します
2007/03/19(月) 18:09:19ID:???for($i=1;$i<1001;$i++){
print ">>$i";
print "ぬるぽ";
}
?>
0022nobodyさん
2007/03/21(水) 11:05:07ID:???すいません、仕事が忙しくて遅々として進まないのでorz
まだ2%ぐらいしかできてないんで、もうちょい作ってからにしますorz
0023nobodyさん
2007/03/27(火) 19:37:13ID:???0024nobodyさん
2007/04/05(木) 10:05:52ID:???0025nobodyさん
2007/04/05(木) 18:23:24ID:qzUTLqFOちなみに環境はlinux+mysql+symfonyで作ったsymfony用のサンプルコードなんだが
0027age
2007/04/09(月) 17:27:25ID:Om+VcTLyまあ、じゃあひとまず晒してみるよ。
解凍パスはsampleね
ttp://www.csync.net/service/file/view.cgi?id=1176107178
ソースしか出せないから動作確認とかは各人でやってみてくれると嬉しい。
pearとsymfonyのパスの設定ファイルを各人の環境に書き換えて
DB接続のconfファイル書き直して
data/sql/lib.model.schema.sqlをDBに流し込んで
ちなみに俺の環境はDBの名前はsymfonySampleな、変える場合は各人設定ファイルの変更よろ
DBはmysql以外を使う場合は設定ファイルを書き直してくれ
ドキュメントルートはweb/index.phpで.htaccess読むように設定してrewriteモジュール入れて、
バーチャルホストで Alias /sf symfonyパス/web/sf
あとキャッシュフォルダとかはパーミッション777ね
ぱっと思いつく設定書いたけど不十分かもしれないからあとは各々自分の環境にあわせてくださいな。
自分的にはindexのアクション1つで作ったのとかアホとしか思えない作りになってしまった点がかなり問題くさいと思う
あとログイン認証がおそまつすぎるかな
何でユーザー認証つきの掲示板かというとDBからselectする時にjoinのやり方も勉強したかったから
意味なさげだったけど無理やりテーブル2個にして表示も2個のテーブルからデータ拾う形にした
symfony使って何か作るの初めてだったから何か問題点とかあったら教えてくれれ
0028nobodyさん
2007/04/10(火) 12:37:52ID:???具体的に、どこ見て欲しいとかあったほうがいいのでは
0029nobodyさん
2007/04/15(日) 10:51:26ID:klTQuJOW0030nobodyさん
2007/04/18(水) 14:23:24ID:cedydNy80031nobodyさん
2007/05/07(月) 18:17:56ID:HYJOkdGm0032nobodyさん
2007/05/07(月) 18:36:33ID:8mOiui5O質問ですが、サーバーからクライアントの特定のフォルダーのテキストファイルをアップする方法がわかりません。
通常アップロードするときに良くある「参照」と書かれたボタンをクリックするとファイルの選択の画面が開き
ファイルを指定して「アップロード」ボタンを押してアップロードさせる方法がありますが、
一連の作業(「参照」、「アップロード」)をしないでクライアントの特定のフォルダーのテキストファイルをアップする方法を教えてください。
因みに通常のアップロード
print("<form enctype=\"multipart/form-data\" action=\"xxxxxxxx.php\" method=\"post\">");
print("<INPUT TYPE=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"5000000\">");
print("<INPUT TYPE=\"file\" name=\"UserFile\">");
print("<INPUT TYPE=submit name=\"sub\" value=アップロード>");
print("</form>");
0033nobodyさん
2007/05/07(月) 21:04:25ID:???0035nobodyさん
2007/05/08(火) 16:54:48ID:???俺たちのクリックで日本を一位にしようぜ!!
“30年は日本に手は出せないな”という勝ち方をしたい
http://wwwww.2ch.net/test/read.cgi/news4vip/1178602852/
1. チリ 136,836,018
2. ポーランド 135,173,390
3. イスラエル 80,308,719
4. ★日本 71,029,997★
5. スロベニア 56,818,986
6. フィンランド 40,275,252
石を投げる戦争から人は進化・進歩を遂げ、剣や槍などの武器をもって戦うようになった
人間はさらに発展し兵器を使う戦争を始めた
そして今、指先一つを武器とした電脳戦争が勃発したのであった・・・
皇国を勝利へと導くには貴様らの参戦が不可欠である
・戦場
http://www.clickclickclick.com/default.asp
・まとめサイト
http://www33.atwiki.jp/clickvip/
・mixi
http://mixi.jp/view_community.pl?id=2141035
0036nobodyさん
2007/05/15(火) 17:38:37ID:???* あげです +
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
0037nobodyさん
2007/05/18(金) 19:33:05ID:vYBK1HW2* あげです +
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
0038nobodyさん
2007/05/25(金) 00:20:30ID:???* メガデス +
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
0039nobodyさん
2007/06/01(金) 19:19:25ID:3y0dLYvG* ジャコパス +
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
0040nobodyさん
2007/06/11(月) 13:51:35ID:+sUSdk/eage
<?php
0041nobodyさん
2007/06/13(水) 14:17:02ID:???0042nobodyさん
2007/06/15(金) 22:44:14ID:0LRe+Y6N}
0043nobodyさん
2007/06/25(月) 22:26:56ID:???0044nobodyさん
2007/06/26(火) 18:57:07ID:s3riC2lTParse error: parse error, unexpected T_STRING 'ワラタ' in line >>43
0046835
2007/07/25(水) 12:51:04ID:XbSTHe/P0047nobodyさん ◆nKbmquMKd2
2007/07/27(金) 15:58:52ID:???0048nobodyさん
2007/07/27(金) 20:55:42ID:vcSWcDTghttp://pc11.2ch.net/test/read.cgi/php/1185521566/
ここから誘導していただきました。ありがとうございました。
初めてPHPに挑戦してみたのですが、
どうしても動かない関数がでてきてしまいました。
自分では何度もチェックをしているのですが、
プログラム自体が初心者なのでなに根本的な間違いを
犯しているかもしれません。
恐れ入りますがどなたかお力添えを頂けないでしょうか?
ttp://www-2ch.net:8080/up/download/1185537177159734.kDjOMz
0050nobodyさん
2007/07/28(土) 01:54:15ID:ErWRhjGmありがとうございます。
ご指摘の通り間違っていました。
そのあと色々大きな間違いや小さな間違いを直したりして、
どうにか一応は改良できました。
あとは編集したデータが何故か書き込めないという問題さえ解決できれば完成です。
とりあえず今夜は眠って、明日またパーミッションなどを勉強し直します。
本当にありがとうございました。
一応、現在のものをおいておきます。
ttp://www-2ch.net:8080/up/download/1185555098879782.h1mh74
005148
2007/07/28(土) 13:13:30ID:ErWRhjGm……ファイルのパスが間違ってましたorz
お騒がせして申し訳ありません。
本当にありがとうございました。
0052nobodyさん
2007/07/28(土) 13:35:46ID:???0053nobodyさん
2007/08/16(木) 20:52:08ID:WHzWpCp7【ソース】 http://example.com/test.txt
【プログラミング経験】 5ヶ月
【希望評価スタイル】 悪い部分を指摘して欲しい / 良い部分を指摘して欲しい
【自分の性格】 かかってこいや! / またーり / 叩かれると自殺しちゃうかも
【備考】
エロ画像弾くうpローダー
0054nobodyさん
2007/08/16(木) 21:29:05ID:???0057nobodyさん
2007/08/18(土) 15:20:40ID:???0058nobodyさん
2007/08/18(土) 17:50:00ID:???0059nobodyさん
2007/08/18(土) 22:46:03ID:Zb55oXWt0060nobodyさん
2007/08/19(日) 19:10:17ID:???0062nobodyさん
2007/10/08(月) 09:31:32ID:???0064nobodyさん
2008/11/07(金) 14:55:45ID:4VTuoj+z一年以上前のだけど、まだ稼動してるんだなw
こういう発想大好きだww
0065nobodyさん
2008/11/15(土) 22:57:08ID:???【設置場所】 http://lcdata.ddo.jp:8080/2ch/upload/
【ソース】 これから作るんです
【プログラミング経験】 ないしょ
【希望評価スタイル】 機能のアイディアがほしいな(シンプル指向で考えてます)
【自分の性格】 またーり
【備考】 B90/W58/H86 です。
0068nobodyさん
2008/11/17(月) 03:02:43ID:DKgH+i/4【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
このスレッドを1時間に1回監視して、
書き込みがあったら、
番号、名前、さげ、年月日時間、ID、内容
をテキストファイルに追記していく。
アボーンがあったら、何番がアボーンになったと記録する。
そんな、PHPスクリプトを自作してここで発表して下さい。
お願いします!!
007068
2008/11/17(月) 05:05:35ID:DKgH+i/4・PHPの技術力が違う
・エレガントさが違う
それに一番大事なのは、
1日1回、スレを丸ごと保存し、古いのを捨てる、ってやり方があるけど、
それだと、アボーンに何が書いてあったかわからないのです。
よろしくお願いします!!
0071nobodyさん
2008/11/17(月) 05:12:05ID:???要するにあぼーんされた部分を残しときゃいいってこと?
あぼーん以外を保存しときゃあとから参照できるような気がするけど・・・
■番号、名前、さげ、年月日時間、ID、内容をテキストファイルに追記していく。
■アボーンがあったら、何番がアボーンになったと記録する。
↑この2つはフォーマットが全然違うと思うけど、そのへん何か考えてます?
あと、1時間に1回って処理をしようと思ったらcronとか使うと思うけど大丈夫ですか?
007268
2008/11/17(月) 05:22:04ID:???> 要するにあぼーんされた部分を残しときゃいいってこと?
そうです。
> ■番号、名前、さげ、年月日時間、ID、内容をテキストファイルに追記していく。
> ■アボーンがあったら、何番がアボーンになったと記録する。
>
> ↑この2つはフォーマットが全然違うと思うけど、そのへん何か考えてます?
いえ、考えてません。
> あと、1時間に1回って処理をしようと思ったらcronとか使うと思うけど大丈夫ですか?
cronを知らないのでなんとも言えません。
ただ、winXPのパソコンを24時間立ち上げておくことは可能です。
0073nobodyさん
2008/11/17(月) 05:30:09ID:???http://lcdata.ddo.jp:8080/2ch/1156116687/68/
↑ここで作ってます。
7時までにできなかったら仕事に出動orz
ニートになって趣味プログラミングに没頭したいなぁ。
0075nobodyさん
2008/11/17(月) 05:52:05ID:???>>74
ごめん、あぼーんって動作テストできないってことに気づいた。
肝心のあぼーん部分がほとんど検証できてないです。
一応ソース↓
http://lcdata.ddo.jp:8080/2ch/1156116687/68/index.phps
1.自分のPCにWeb鯖を立てる。
2.↑のスクリプトを設置する。
3.ブラウザから何度かアクセスして、以下のCSVファイルを吐くことを確認する。
(1)現在のスレの内容(ただしあぼーん以外/あぼーんされたレスは「あぼーん」って文字が追加される)
(2)前回のアクセスから増えているレスの内容
4.cronが使えない環境みたいなので、「コントロールパネル>タスク」を使って1時間ごとにアクセスするようにがんばる。
スクリプトがまともに動くなら、CSVファイルからあぼーんされたレスを
抽出するスクリプトを組むのは簡単だと思う。
0076nobodyさん
2008/11/17(月) 06:02:37ID:???たぶんもう大丈夫だと思います。
ソースは↑のやつを更新しました。
007768
2008/11/17(月) 06:48:24ID:???おお、有り難うございます。すごいですね。
なにはともあれ、1226517332_new.txtというファイルが出来て、そこにデータが全部入ってるみたいです。感謝、感謝です。
ただ、↓のエラーがどっちゃりでてます。
Notice: Undefined offset: 1 in C:\php\ThreadKeep.php on line 34
Notice: Undefined index: abone in C:\php\ThreadKeep.php on line 72
007868
2008/11/17(月) 06:52:49ID:???if (!$value["abone"]) { これが72行目です。
0079nobodyさん
2008/11/17(月) 06:57:43ID:???Noticeなのでエラーではなく通知ですね。
PHPの設定で、エラーを拾うレベルが高すぎるんだと思います。
php.iniの「error_reporting」の箇所を↓に修正して、Noticeがでないようにできます。
error_reporting = E_ALL & ~E_NOTICE
エラーはふつうに表示されるのでご安心を。
ホントはNoticeも出ないように作るべきなんだろうけど時間切れです、すいません。
0083nobodyさん
2008/11/17(月) 22:47:09ID:???あぼーんされたレスだけを別ファイルに保存するようにしてみた。
ソースは同じとこです。
Noticeが出るのは放置してます。
0084nobodyさん
2008/11/18(火) 00:00:51ID:???できるだけ環境を選ばず設置できるようにしたいので使いたくないんですが、
コーディングの煩雑さとパフォーマンスの誘惑に負けそうです。
僕もそうだったけど、「DBって何?聞いたことあるけど」って人は多いですよね。
敷居下げるならDBなしなのかなぁ・・・。
0085nobodyさん
2008/11/18(火) 02:18:16ID:???素人向けのレンタルスペースでも動くスクリプトを配布したいんなら無しでしょうね。
ただPHPが動くレンタルサーバでDBが入ってないとこなんてあんの?知らないけど。
どちらも押さえときたいなら両方作って配布するとか。
0086nobodyさん
2008/11/18(火) 07:15:17ID:???なるほど。
でもやっぱSELECTの手軽さは魅力だと思います。
DBばっか使ってるからファイルベースだとCSVしか思いつかなくて・・・。
ただ、アップローダは自鯖ってのが基本だと思ってます。
XAMPPとか使ってとりあえずDB入れたけど、使い方はさっぱりって人は多いと思うなぁ。
ってことでファイルベースでやってみます。
どうでもいいけど、前スレ見てたら以前もアップローダ作ってたこと思い出したw
完成したんだっけかなぁ・・・。
0087>>65
2008/11/24(月) 21:25:23ID:???ルータを買ったらDDNSに対応してたので、URLを変更しちゃいました。
>>65のアップローダは↓で作成中です。
ttp://lcdata.ath.cx:8080/2ch/upload/
0089>>65
2008/11/25(火) 22:54:07ID:???すいません、またまたURLを変更しました。
ttp://lcdata.ath.cx/2ch/upload/
こっちでやってます。
まだ作りかけです。
なんでポート80番が使えないんだろ?
とか思ってたんですが、スカイプが使ってることに気づいたのでorz
009068
2008/11/26(水) 15:39:46ID:yZjcfnV8$thread = @file_get_contents($url);
preg_match_all("/<dt>(.*)/", $thread, $matches);
$res = $matches[1];
if ($res) {
foreach ($res as $key => $value) {
// レス番号
preg_match("/^(\d*)/", $value, $matches);
$num = $matches[1] - 1;
$new_csv[$num]["num"] = $matches[1];
// メールアドレス
preg_match("/<a href=\"mailto:([^\"]*)/", $value, $matches);
$new_csv[$num]["mail"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 名前
preg_match("/<b>([^<]*)/", $value, $matches);
$new_csv[$num]["name"] = $matches[1];
// 時刻
preg_match("/(<\/a>|<\/font>):(.[^I]*)ID:/", $value, $matches);
$new_csv[$num]["time"] = $matches[2];
// ID
preg_match("/(ID:)(.*?)<dd>/", $value, $matches);
$new_csv[$num]["id"] = $matches[2];
// レスの内容
preg_match("/<dd>(.*)/", $value, $matches);
$new_csv[$num]["res"] = $matches[1];
$abone = preg_match("/あぼ.*?ん<\/b><\/a>:あぼ.*?ん<dd>/", $value, $matches);
if ($abone) {
$new_csv[$num]["abone"] = true;
}}}
009168
2008/11/26(水) 15:45:19ID:yZjcfnV8で、
preg_match_all("/<dt>(.*)/", $thread, $matches);
この行で1レスづつ、配列に入れる。
で、
$res = $matches[1];
この行の意味がわからないです。
$matchesの変数、$matches[1]の変数、$resの変数のそれぞれの違いがわからないのです。
0092>>65
2008/11/26(水) 22:59:01ID:???いやあの晒されると恥ずかしいですが。
特にそこ適当なんでw
http://jp2.php.net/manual/ja/function.preg-match-all.php
意味はマニュアルに書いてあるとおりです。
どっか動きがおかしいのを修正したいのか、改造したいのか、単純に意味がわからなかったのか、
コードが汚すぎて読みにくいって指摘なのか、PHPを覚えてみようと思ってるのか、
いったいどれでしょうか?
ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
----------------------------------------
<?php
error_reporting(0); ←これ追加
----------------------------------------
だけでNoticeは出なくなると思います。
0093>>65
2008/11/26(水) 23:04:25ID:???まず、このスレのソースコードを見てみてください。
各レスが「<dt>〜」って1行になってるのがわかると思います。
まず、$matchesにその各レスが入ります。
$matches[1]には、「"/^(\d*)/"」などの1番目のカッコの中身が入ります。
そんでもって、さらにそのレスに対してpreg_matchをすることによって、
レス番号とか名前とかを切り出してるんです。
$matches[1]をわざわざ$resって変数に入れてるのは特に意味はありません。
009468
2008/11/26(水) 23:56:10ID:yZjcfnV8有り難うございます。 確かに、http://jp2.php.net/manual/ja/function.preg-match-all.php に
↓が書いてありました。 すみません。
>$matches[0] はパターン全体にマッチした文字列の配列
>$matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字
> どっか動きがおかしいのを修正したいのか
動きは、ちゃんと動いてくれて感動しました。
>単純に意味がわからなかったのか、
はいそうです。
>PHPを覚えてみようと思ってるのか
そうです、これがメインで1行づつ読み解かしてもらってます。
> ふと思い出したけど、php.iniのerror_reportingを書き換えなくても、
> ----------------------------------------
> <?php
> error_reporting(0); ←これ追加
> ----------------------------------------
> だけでNoticeは出なくなると思います。
有り難うございます。
0095nobodyさん
2008/11/27(木) 10:46:47ID:QDCpWLvTerror_reporting(E_ALL);
面倒だけど変数をまとめて設定する癖がつくから後々楽だぞ
0096>>65
2008/11/27(木) 20:06:40ID:???僕も余裕があればデバッグ中はそうするように心がけてみます。
PHPしか知らないから、変数の宣言とか型とかいい加減な扱いするクセついちゃったなぁ。
0097nobodyさん
2008/11/27(木) 20:12:41ID:???0098>>65
2008/11/27(木) 20:18:28ID:???そうですね。
他に何に使ってるわけでもないWeb鯖だし、それでいいと思います。
僕はいつも、↓みたいな感じでログを流しながら作業してます。
tail -f /apache/log/error_log
Windowsで似たようなことってできるのかなぁ。
Cygwinとか試してみよう。
0099nobodyさん
2009/05/19(火) 20:17:57ID:D1418Uic【ソース】 http://u9.getuploader.com/kiren/download/1/chat.7z
【プログラミング経験】 3ヶ月
【希望評価スタイル】 悪い部分を指摘して欲しい
【自分の性格】 またーり
【備考】
表示部分はJQUERYで、サーバーの部分はPHPで作りました。どうも保守性が悪いような気がするので、
悪い部分があったら指摘してほしいです。
0100nobodyさん
2009/05/21(木) 01:39:47ID:???0101nobodyさん
2009/05/21(木) 10:06:33ID:???HTMLのエスケープはPHP側でやったほうがいいよ
あとちゃんと見てないからよくわからんが、今HTTPヘッダで取ってくるログを判別してるみたいだけど、
それもPHP経由で重複したデータを取ってこないように。
■ このスレッドは過去ログ倉庫に格納されています