トップページphp
1001コメント331KB

【PHP】下らねぇ質問はここに書き込みやがれ 45

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/12(土) 16:42:48ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0490nobodyさん2007/06/02(土) 18:56:49ID:???
どちらも終わってると思うので、
後は二人仲良く相談してコーディングしてください。
0491nobodyさん2007/06/02(土) 18:57:47ID:???
>>489
終わってるね
基礎中の基礎も解っていない
0492nobodyさん2007/06/02(土) 19:02:34ID:???
>>490
ひどww 俺バイトですから書かれてることやって提出するだけです
提出したら電話がかかってきて
「おまえのソースはコメント多すぎるんだよ 転送量がハンパなくなるから勝手に削除したわ
余計なことさせるなよ」
と言われました メールじゃなくて電話ですよ


>>491
どもです

ありがとうございました
0493nobodyさん2007/06/02(土) 19:03:34ID:6vXnRB3n
ID出し忘れ
失礼しました
0494nobodyさん2007/06/02(土) 19:07:21ID:???
コメント削除ぐらいPHPにやらせればいいのに馬鹿な先輩だ
0495nobodyさん2007/06/02(土) 19:10:46ID:???
>>493
ごめんな。
言い過ぎたよ。明日おごるから
0496nobodyさん2007/06/02(土) 19:13:16ID:???
コメントを丁寧に書くことはいいことだよ。
むしろ、コメントがなくて今まで散々悩まされてきた。
もっと、しっかり評価してくれる人の下で仕事したほうがいいぞ。
0497nobodyさん2007/06/02(土) 19:14:40ID:???
つーかコーディング規約あるだろ。
0498nobodyさん2007/06/02(土) 19:19:14ID:???
この場合、コーディング規約は、あんま関係ない。
0499nobodyさん2007/06/02(土) 19:32:43ID:???
コメントさ〜〜〜ん☆彡
0500nobodyさん2007/06/02(土) 19:54:02ID:???
>>498
普通ある。
コメントについても言及してるはず。
0501nobodyさん2007/06/02(土) 20:26:28ID:???
>>500
コーディング規約でコメントの「書き方」はよくあるが「つけ方」は普通ないだろ
まあ、一行ごとにコメント書けというアホ規約があって
ボスが規約作った奴に怒鳴り込んだプロジェクトもあったけどさ

ウチのまわりだと、クラスやpublicメソッドのコメントはともかく
それ以外のコメント書くならコメントがなくてもわかるようなコーディングしろ
ってのが主流ですだよ
0502nobodyさん2007/06/02(土) 20:41:15ID:???
>>501
それだとコメントの魅力半減じゃ
コード読まなくても何やってるのか解るようにするためにコメント書くのも良いんじゃない?
0503nobodyさん2007/06/02(土) 20:47:31ID:???
コメント書かなくてもコード見れば分かると言う奴のコードほど見づらい。
0504nobodyさん2007/06/02(土) 21:38:30ID:???
コメント書いてても他人の書いたコードはさっぱりだぜ!
0505nobodyさん2007/06/02(土) 21:46:48ID:???
投稿出来るレビューサイト作ってみたいんですが、難しいですかね?
0506nobodyさん2007/06/02(土) 21:49:21ID:???
そんなに難しくない
0507nobodyさん2007/06/02(土) 21:50:46ID:???
>>505
それはphpだと厳しい。そこまでいくと、perlかrubyでやらないと駄目かも。
0508nobodyさん2007/06/02(土) 21:51:37ID:???
>>507
それはひょっとしてギャグで言っているのか?
0509nobodyさん2007/06/02(土) 21:54:09ID:???
>>508
いや、ギャグでもなんでもないんだが・・・
自由にユーザーが投稿できるようにするには、
入力チェックや何やらでphpでは手に負えなくなるだろ。
0510nobodyさん2007/06/02(土) 21:57:46ID:???
>>509
あの・・・何言ってるんだ?
何か別のPHPと勘違いしていないか・・・?
0511nobodyさん2007/06/02(土) 22:05:58ID:???
まぁ、phpのスレだから、あまり言っても荒れるだけだから止めとくけど。

ノコギリでも刺身が作れるだろ、と言われれば、
そうですね、と苦笑して答えますが。
0512nobodyさん2007/06/02(土) 22:16:33ID:???
>>511
phpを何に入れ替えても使える、便利な煽り文句ですね
0513nobodyさん2007/06/02(土) 22:17:30ID:???
>>507
rubyって・・・
0514nobodyさん2007/06/02(土) 22:19:04ID:???
なんか、荒れてる・・・。
結局のところどっちなんでしょう?
0515nobodyさん2007/06/02(土) 22:20:01ID:???
全然厳しくない
掲示板の延長程度
0516nobodyさん2007/06/02(土) 22:20:53ID:???
>>507は何かいってみたかっただけの駆け出しプログラマーなんだ。
許してやってくれ。
0517nobodyさん2007/06/02(土) 22:24:45ID:???
なるほど。
ありがとうございます。
0518nobodyさん2007/06/02(土) 22:35:18ID:???
いつもここの酷い有様を楽しみながら見ている
下質大好きっ子の俺が言うのもなんだけど
今日の流れの酷さったら半端ないな
0519nobodyさん2007/06/02(土) 22:44:09ID:???
ここんとこ毎日こんな感じ
0520nobodyさん2007/06/02(土) 22:52:38ID:???
>>505
Javascriptのライブラリでやるのがオススメ
俺が知ってるのでも2,3あるけど、その場でプレビューできるから最高だよ
0521nobodyさん2007/06/02(土) 22:54:57ID:???
PHP入門者なんだけど、
入力チェックってjavascriptでやるほうが簡単なの?
05224412007/06/02(土) 22:59:43ID:4co9FcJH
>>456

ttp://php.benscom.com/manual/ja/function.flock.php
例 623. flock() の例

<?php

$fp = fopen("/tmp/lock.txt", "w+");

if (flock($fp, LOCK_EX)) { // 排他ロックを行います
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // ロックを解放します
} else {
echo "ファイルをロックできません!";
}

fclose($fp);

?>
だな ロックを掛けたら解除しる ってとこか
0523nobodyさん2007/06/02(土) 23:00:02ID:???
>>521
だから、そんなもんは、phpだろうとjavascriptだろうとperlだろうと何だってできるんだよ。
迷ってないで、まずは作れよ。
0524nobodyさん2007/06/02(土) 23:02:14ID:???
簡単かどうか?と聞かれれば、慣れてるほうが簡単だろうとしか言い様がない。
どっちがいいか?と言われれば、両方組み合わせるのが一番いいのは言うまでもない。
javascriptは画面遷移を伴わないでチェックできる利便性があるが、
クライアント環境に依存するので、javascriptオンリーは避けたほうがいい。
0525nobodyさん2007/06/02(土) 23:03:21ID:???
>>521
jsで入力チェックしても、cgi側でもう一回チェックする羽目になるのだが
0526nobodyさん2007/06/02(土) 23:21:38ID:???
>>525
確かにな 処理は増える
だが、利用者の側に立てば、その場でチェックできる方が良いのではないだろうか
0527nobodyさん2007/06/02(土) 23:28:05ID:???
>>522

読みとりの時は排他ロックじゃなくて、LOCK_SH LOCK_UN か、
書き込みの時は LOCK_EX LOCK_UN だね

getData();とかは素直にそのままreturnでカウンタの値(or 戻り値を含むarray)を返した方が良いと思う
この辺は上で他の人もいっていたけど、Javaの入門の方を見た方がいいか、、setter getterあたりとか


0528nobodyさん2007/06/02(土) 23:30:45ID:???
>>526
>>521の言い方だとjsかphpかどっちか片方にしか掛けなさそうだから言ったまでさ

確かに俺も入門者に接する態度じゃなかったな、言い直すか

>>521
どっちでもやっても大差は無いよ
でも、jsで入力チェックしただけだと悪意の有るユーザーが不正な文字列を簡単に送る事が出来てしまう、だからphp側でもチェックするのは必須
0529441=522=5272007/06/02(土) 23:31:09ID:4co9FcJH
すまん、安価張り間違えた。

全部>>456に対してのレスです
0530nobodyさん2007/06/02(土) 23:43:52ID:???
クライアントサイドでvalidateして終わりって恐ろしすぎる
05315212007/06/02(土) 23:59:41ID:???
>>528
なるほど。両方でチェックするという発想はありませんでした。
勉強になります。
0532nobodyさん2007/06/03(日) 02:27:21ID:V2jBxdII
みなさんはE_NOTICEが出ないようにコーディングしてますか?
0533nobodyさん2007/06/03(日) 02:31:49ID:???
しているよ
0534nobodyさん2007/06/03(日) 02:33:06ID:???
PEARをphp5でつこうたらnoticeでまくりじゃん
0535nobodyさん2007/06/03(日) 03:09:39ID:QBl67X/1
セッション用のディレクトリに、
一時作業用ファイルを作成して
別のプロセス間で共有させたいのですが、
どうやりゃいいですか?
0536nobodyさん2007/06/03(日) 03:17:59ID:???
それがわからないのならやらないほうがいいよ。
教えてもらってもセキュリティつかれるだけ。
おまえにはまだ早い
0537nobodyさん2007/06/03(日) 03:29:24ID:QBl67X/1
>>536
共有鯖ではないので多分大丈夫です
session.save_pathというのがありました
これを使えばいいと思うのですが
もしかしてセッションを削除する時に
同時に削除されてしまったりするのでしょうか
ワイルドカード使って削除しているのか
ただ単に全削除しているのかによると思いますが
0538nobodyさん2007/06/03(日) 03:31:44ID:???
共有鯖じゃないなら大丈夫だという自信があるならやってください。
おれならおまえの鯖をクラックするのにそう時間はかからないよ
0539nobodyさん2007/06/03(日) 03:41:19ID:???
((((;゚Д゚)))))
0540nobodyさん2007/06/03(日) 03:45:03ID:???
>>535
書いてることが意味不明なわけだが
具体的に何したいの?
0541nobodyさん2007/06/03(日) 04:49:53ID:???
     ∧_∧
    ( =д=)  世の中は質問があれば答えがある。その2つしかないんだっ!   
    ハ∨/^ヽ
   ノ::[三ノ :.'、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
0542nobodyさん2007/06/03(日) 08:46:00ID:???
>>541
それ1つでしょ
0543nobodyさん2007/06/03(日) 08:47:52ID:???
>>542=コナン
0544nobodyさん2007/06/03(日) 12:17:38ID:yVYYmrsT
アクセスしてきた場合に、あるファイルを読み込む処理をしているのですが、
不定期にエラーが発生してしまって困っています。
ここ1ヶ月試行錯誤でコードをあれこれいじったのですが、どうしてもエラーが消えないんです。
アドバイス頂けないでしょうか?宣しくお願いします。

【コード】
$fp = @fopen($fileName, 'r');
if ($fp) {
while ($line = @fgets($fp)) {
if ($line == FALSE || $line == "") {
break;
} else {
// ファイル処理
}
}

@fclose($fp);

}
【エラーメッセージ】
「while ($line = @fgets($fp)) {」の部分で発生
メッセージ「fgets(): 10 is not a valid stream resource」
【発生頻度】
1000アクセスに2,3回程度
【再現性】
アクセス負荷、時間帯、処理の内容に関係なく不定期に発生
0545nobodyさん2007/06/03(日) 12:56:46ID:XtY/sQS4
PHPで1回だけ処理をさせたい場合ってどういう風に記述するんですか?
(初期化処理とかなんですが・・)
2回目以降にリクエストされても、その処理は通したくないのです。
0546nobodyさん2007/06/03(日) 12:59:28ID:???
>>545
unlink(__FILE__);
0547nobodyさん2007/06/03(日) 13:01:47ID:???
>>544
「試行錯誤であれこれいじった」とかいう情報に何の意味があるの?
頑張ったんですけどだめでしたとかいうポーズ?
0548nobodyさん2007/06/03(日) 13:02:20ID:???
>>544
エラーメッセージの通り
fgetsの引数に何かが原因で10を渡してしまってるんだろう
0549nobodyさん2007/06/03(日) 13:13:09ID:???
>>547
べつにえーやんそんくらい。おまいの嫌味情報のがよっぽどいらん。
0550nobodyさん2007/06/03(日) 13:17:57ID:XtY/sQS4
>546

それって処理終わったら消すってこと?(ファイル自体を)
PHPってそんな方法でしか実装できないの?
0551nobodyさん2007/06/03(日) 13:20:35ID:???
>>550
というか質問が曖昧なのだよ。
0552nobodyさん2007/06/03(日) 13:23:01ID:???
>>550
要件があいまいすぎてわけわからん。
本当に一回しか実行しないなら、一回実行して消せばいいのはあたりまえすぎだし。
セッションごとに一回って意味にとれなくもないし、妙に回答のしづらい質問だな。
0553nobodyさん2007/06/03(日) 13:24:46ID:XtY/sQS4
たとえばDBのコネクションをプーリング(保持)したい場合って、毎回接続させたくないから、apache起動時とかもしくは1番最初のリクエスト時にDBの接続をして、次回以降はさせたくないとかそんな意味なんだが。
0554nobodyさん2007/06/03(日) 13:31:53ID:???
>>553
pconnectとかだったらDBがやってくれるよ
2回目以降の接続なら自動的に既存の接続を使いまわしてくれる
それ以外でも1回目だけとか考えるより、対象の処理が完了していたら
実行しないとかそういう風に考えるのがまあ普通だな例外もあるが
0555nobodyさん2007/06/03(日) 13:32:47ID:???
singleton使えば?
あと何でいきなり口調が偉そうになってんの?
0556nobodyさん2007/06/03(日) 13:33:10ID:???
コネクションプーリングだったらググれば出るぞ
0557nobodyさん2007/06/03(日) 13:36:21ID:XtY/sQS4
>> 554

ありがとうございます。
参考になりました。
0558nobodyさん2007/06/03(日) 13:37:34ID:XtY/sQS4
>> 556

いや特にコネクションプーリングがやりたいわけじゃなく、PHP使って初期化処理って普通どうすんのかなぁと気になって。
上でも書いたけどコネクションプーリングは例えです。
0559nobodyさん2007/06/03(日) 13:55:14ID:9Yu/VUSy
PHP4でdelegateパターンを実現する方法はありますでしょうか?
0560nobodyさん2007/06/03(日) 14:30:00ID:???
逆にどこが実装しにくいのか聞きたい
0561nobodyさん2007/06/03(日) 14:36:04ID:9Yu/VUSy
>>560
存在しないメソッドが呼ばれたときに、呼ばれるメソッドを定義できて、
そのメソッド名とパラメータがえられれば実装できます。
が、今一度マニュアルを漁ってみたところそのような機構はないようです。
0562nobodyさん2007/06/03(日) 14:43:05ID:???
>>561
一応PHP4にもある、4.3.0以降オンリーで5のより使いにくいけどな
http://jp.php.net/overload
でも5でやるのがおすすめだな
0563nobodyさん2007/06/03(日) 14:50:10ID:9Yu/VUSy
>>562
ありがとうございます。こんなところにあるは思いませんでした。
一応リファレンスは通読していたつもりだったんですが…。

確かにPHP5でやると楽なんですが、PHP4が要件なんです。
これで何とかなりそうです。本当にありがとうございました。
0564nobodyさん2007/06/03(日) 16:12:50ID:???
1時間に100万通くらいメールを送りたいんですが、
sendmail関数をforでループさせても3万通位が限界です。
これってphpの仕様?
できれば、100万通じゃなくても多ければ多いほどよくて1億通でも送ることが可能なら送りたいです。
よろぴく♪
0565nobodyさん2007/06/03(日) 16:15:06ID:???
>>564
spam業者乙
0566nobodyさん2007/06/03(日) 16:16:06ID:???
>>564
それはphpだと厳しい。そこまでいくと、javaかperlでやらないと駄目かも。
0567nobodyさん2007/06/03(日) 16:21:45ID:???
>>566
レスありがと!
んで、javaだと何かいい方法あんの?
0568nobodyさん2007/06/03(日) 16:23:28ID:???
>>566
おいおい関係ねーよ。誘導すんなぼけ。
0569nobodyさん2007/06/03(日) 16:25:09ID:???
phpがどうというよりMTAが捌ききれてないような
0570nobodyさん2007/06/03(日) 16:30:02ID:???
>>567
javaはphpと違って言語レベルで並行処理ができる。
※ こういうことが出来ないのが、phpがスクリプト言語と言われる由縁だけど。
詳しくは、javaのスレでメールの送信方法と、マルチスレッドの方法を聴いて。
※ その前に、googleで検索するように。すぐ見つかる。
あとは、サーバーによって一時間当たりのメール送信数に制限掛けているところがあるから、
複数の安いサーバーと契約して送信すればできるんじゃないか?
0571nobodyさん2007/06/03(日) 16:34:57ID:???
強烈な電波を感じます
0572nobodyさん2007/06/03(日) 16:37:13ID:???
普通100万とか送ったら自滅するだろ。
0573nobodyさん2007/06/03(日) 16:41:15ID:???
結局、phpだとダメダメってことな。
jjavaもよくわからんけど、わかんかったらまたききに来るわ。
0574nobodyさん2007/06/03(日) 16:43:27ID:???
pcntl_forkでsocket100個作って回してみろよ
0575nobodyさん2007/06/03(日) 16:43:45ID:9Yu/VUSy
んなこたない。用途に合わせて適切に道具を選べないお前がダメダメってことだ。
0576nobodyさん2007/06/03(日) 16:46:36ID:???
>>573
もうここには、聞きに来ないでくれ。
javaなら、下のメールリストに高木さんという親切な管理人さんがいらっしゃるから、
何も分からないから、メールで大量送信できるようなプログラムを至急作って送って下さい。
と送れば、すぐ作ってくれるんじゃないかなぁ。
ttp://java-house.jp/ml/
0577nobodyさん2007/06/03(日) 16:50:24ID:???
>>576
宣伝乙
0578nobodyさん2007/06/03(日) 16:50:31ID:???
ここが一番クソスレクソサイトなんだからここでやれよ
0579nobodyさん2007/06/03(日) 16:56:48ID:???
それは宣伝と言うよりも……怖い…
0580nobodyさん2007/06/03(日) 16:57:59ID:???
GCされた時に
session_destroyすると
Message: session_destroy() [function.session-destroy]: Session object destruction failed
になります。
セッションが切れているかどうかを判定する方法はないですか?
0581nobodyさん2007/06/03(日) 19:08:19ID:???
タイムアウト処理に関して質問です。
ある処理が一定時間経っても終了しなかった場合に、次以降の処理に進むような処理はどうやって実装するのでしょうか。

具体的にやりたいのは、数件のRSSファイルをネットワーク経由で持ってくる場合、n秒以上応答が無い場合は
次のURLに移る・・・というような処理です。

宜しくお願いいたします。
0582nobodyさん2007/06/03(日) 19:14:26ID:???
>>580-581
テンプレ嫁
05835812007/06/03(日) 20:48:31ID:ngQVF/3a
失礼しました。

環境はWindows、Apache、PHP5.2.1です。
0584nobodyさん2007/06/03(日) 20:51:34ID:???
>>580
session_destroyしてるってことは、そのスクリプトの前の方で
session_startしてるわけだわな
んで、session_destroyの時点でセッションのデータが削除されてるってことは
(session_destroyの時間 - session_startの時間) < session.gc_maxlifetime
になるわけだと思うが、いったい何をしたらそうなるのかこっちが聞きたいわ

>>581
RSSをHTTPでもってくるにしても色々やり方があるわけで
それによって答えも変わるわな
0585nobodyさん2007/06/03(日) 22:19:08ID:3VqHHU9G
コメント欄のcgiが欲しいんですけど何処かにありませんか?
0586nobodyさん2007/06/03(日) 22:25:30ID:???
>>585
日本語でおk&スレ違い&
http://pc11.2ch.net/test/read.cgi/php/1180181033/41
これお前だろ
0587nobodyさん2007/06/03(日) 22:31:21ID:???
>>585
簡単だからつくれ
0588nobodyさん2007/06/03(日) 22:38:17ID:???
>>585
そんなのコメントのフリして自分で書いたHTMLあげておけや
0589nobodyさん2007/06/03(日) 22:52:53ID:???
>>588
>>585じゃないけど、その仕様だと例えばHTMLを知らないユーザーとかだとアップできなくない?
HTMLの説明書きとかを注釈で加えるとか?
■ このスレッドは過去ログ倉庫に格納されています