【PHP】下らねぇ質問はID出して書き込みやがれ 100
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/10/27(水) 17:41:33ID:2BwSQxVQ過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 99
http://hibari.2ch.net/test/read.cgi/php/1286938893/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0247nobodyさん
2010/11/01(月) 02:18:55ID:???0248nobodyさん
2010/11/01(月) 02:19:17ID:???コンストラクタをprivateにする必要があるのはどういった場合でしょうか。
また、>>237はどのような仕組みでインスタンス化できるようになっているのでしょうか。
0249nobodyさん
2010/11/01(月) 02:33:38ID:???シングルトンにしたい場合等で自分のクラス以外からは
インスタンス化させたくない場合がある時とかに
privateとする事でプログラム的に制約を与えることが出来る
>>248
>>237はgetInstanceがTestクラスに所属するから
そこからのインスタンス化はできる
0250nobodyさん
2010/11/01(月) 02:36:36ID:???0251nobodyさん
2010/11/01(月) 04:20:21ID:???0252nobodyさん
2010/11/01(月) 04:27:18ID:???0255nobodyさん
2010/11/01(月) 15:20:43ID:???0256nobodyさん
2010/11/01(月) 15:24:45ID:???詳細キボンヌ
0257nobodyさん
2010/11/01(月) 15:34:39ID:???0258nobodyさん
2010/11/01(月) 15:38:30ID:???言わせんなよ恥ずかしい。
0259nobodyさん
2010/11/01(月) 15:41:28ID:???0260nobodyさん
2010/11/01(月) 16:03:27ID:???詳細キボンヌ
0262nobodyさん
2010/11/01(月) 16:18:27ID:???0263nobodyさん
2010/11/01(月) 16:54:24ID:???0264nobodyさん
2010/11/01(月) 17:33:31ID:???★ 荒らしは放置されるのが一番苦手
→ ウザイと思ったらそのまま放置。
▲ 放置された荒らしは煽りや自作自演であなたのレスを誘います。
→ 釣られてレスしたらその時点であなたの負け。
■ 反撃は荒らしの滋養にして栄養であり最も喜びます。
→ 荒らしにはエサを与えちゃだめ。
0266nobodyさん
2010/11/01(月) 18:35:33ID:???いっそ板設定を全ID出しにすればいいのにね
0267nobodyさん
2010/11/01(月) 18:42:32ID:???勢い見てみろよ、このスレだけ特別に異常なの
0268nobodyさん
2010/11/01(月) 19:03:54ID:???ID出そうが出さまいが匿名である以上状況が変わらんのは開発者ならよくわかってるはずだ
0269nobodyさん
2010/11/01(月) 19:04:55ID:???0270264
2010/11/01(月) 19:12:20ID:???0271nobodyさん
2010/11/01(月) 19:18:35ID:???いえ、どこまでもです
0273nobodyさん
2010/11/01(月) 19:37:31ID:???自演でも何でもお好きにどうぞ、って意味だろ?
0274nobodyさん
2010/11/01(月) 21:06:33ID:???お前は2chがわかってないな
ここ8年で強制IDになった板では軽い荒し(自演)は減ってるんだよ
ここはIDでないから気楽に荒しが行われる
強制IDでも、荒しの数は減ってもPCと携帯併用、ip変えたりp2つかっての自演などはあるけど
数は減るんだよ
0275nobodyさん
2010/11/01(月) 21:24:55ID:???0277nobodyさん
2010/11/01(月) 23:03:55ID:???荒らされるのは本気で困るんだが
0278nobodyさん
2010/11/02(火) 01:30:31ID:ICgbzolu【OS名】windowsXP
【PHPのバージョン】5.2.14
【Apache】2.2.16
■php.iniの設定
; For Win32 only.
SMTP = smtp.nifty.com
smtp_port = 25
;smtp_port = 587
; For Win32 only.
sendmail_from = 1234567@nifty.com
■エラー内容
Warning: mb_send_mail() [function.mb-send-mail]:
SMTP server response: 501 5.0.0 Invalid domain name in
■質問内容
PHPでのメール送信の内容で質問があります。
コマンドプロンプトからはtelnetで25番ポートに接続し、認証が必要なくメ
ール送信できるのに、なぜPHPからはメール送信ができないのでしょうか。
ちなみにメールサーバーは契約しているプロバイダのものを使っています。
大変恐縮ですが、自分で設定(サブミッションポートなど)を変えてみても
送信できなかったのでどなたか解決方法をご存知の方がいらっしゃいました
らアドバイスいただけると幸いです。
よろしくお願いいたします。
0279nobodyさん
2010/11/02(火) 01:34:33ID:???0280nobodyさん
2010/11/02(火) 01:35:35ID:???0281nobodyさん
2010/11/02(火) 02:22:26ID:ICgbzolu貴重なアドバイスありがとう御座います。
OP25Bの場合はサブミッションポートだけを指定すれば送信可能というわけではないのでしょうか。
0282278
2010/11/02(火) 02:24:41ID:ICgbzoluアドバイスありがとうございます。
アパッチのログを見たのですがメールログが見つからないのですが、どこか別の
場所にほぞんされているのでしょうか???
0283nobodyさん
2010/11/02(火) 08:18:51ID:???if (!strstr("hoge", $str) && !strstr("huga", $str) && !strstr("hage", $str))
なんてときは
if (!preg_match("/(hoge|huga|hage)/", $str))
のほうがいいよね?
0284nobodyさん
2010/11/02(火) 09:02:47ID:???NetBeansの候補に出したいんだけど
0287nobodyさん
2010/11/02(火) 10:06:43ID:???これ自体が不思議でならない
これだとスパム送り放題って事でしょ
0288nobodyさん
2010/11/02(火) 10:13:30ID:MFB4pbx+多分telnet はローカルマシンからしてるような希ガス
0293nobodyさん
2010/11/02(火) 11:38:40ID:MFB4pbx+phpでsmtp叩いた環境が違うんじゃね
って話だが?
0294nobodyさん
2010/11/02(火) 11:44:22ID:???0295nobodyさん
2010/11/02(火) 12:17:57ID:???・正しいphp.iniファイルを修正したのかどうか。(phpinfoで確認)
・Apacheを再起動したかどうか。
・sendmail_from は正しいメールアドレスを設定しているかどうか。
・POP before SMTP の可能性はないか。
パケットモニタしてみればHELOコマンドの時点で蹴られてるのかどうかなどが
わかるが・・・
0296nobodyさん
2010/11/02(火) 13:05:10ID:???環境がいまいちよく分からないからあれだけど厳しい所だとメルアドのドメインと送信者のドメインを
照合して弾いている所もあるからね。
0297nobodyさん
2010/11/02(火) 14:29:22ID:???ちなみにApacheのログにはメール送信の記録は残らんと思うぞ。
PHPのmail関数が直接MTAを叩きにいくはずだから、記録があるなら
MTAのログだろう。
今回はWindowsでMTAを入れてないわけだからniftyのSMTPサーバーにしか
ログは残ってないことになるわな。
0298nobodyさん
2010/11/02(火) 14:52:51ID:3UDUD+H/0299nobodyさん
2010/11/02(火) 14:53:30ID:MFB4pbx+0300nobodyさん
2010/11/02(火) 14:56:56ID:???0301nobodyさん
2010/11/02(火) 15:42:00ID:???PHPのmail関数は直接sendmailにアクセスするわけだから。
0302nobodyさん
2010/11/02(火) 15:51:00ID:???mail() の Windows 版実装は、Unix 版実装とは 多くの点で違います。 第一に、メッセージの生成にローカルの
バイナリは使用せず、 ソケットを通じて直接操作するだけです。 これは MTA がネットワークソケットを listen している
必要があるということを意味します(ローカルホスト、リモートマシン どちらでもかまいません)。
0303nobodyさん
2010/11/02(火) 16:28:43ID:???Apacheを経由するわけじゃないからApacheのログには
メール送信の記録は残らないって話してんの。
backgroundの実装の話は>>282,297の流れと関係ないだろ?
0305nobodyさん
2010/11/02(火) 17:08:19ID:???環境わからんけどsendmail_path指定してるってことない? 確かこれの指定があれば優先されるんだったよな
0306nobodyさん
2010/11/02(火) 17:21:43ID:???物凄く違和感がある
//ini_set('display_errors', true);
namespace newspace;
echo 1;
0307306
2010/11/02(火) 17:27:43ID:???0309nobodyさん
2010/11/02(火) 19:47:40ID:???皆我慢してるんだぞ。今は嵐が過去るのをじっと我慢。つまらなくなったらいなくなるさ。
0310nobodyさん
2010/11/02(火) 19:57:16ID:???0311nobodyさん
2010/11/02(火) 20:05:46ID:Z+1BHNaUfunction __construct() {
return"22";
}
}
returnの22は取れないんだっけ?
0312nobodyさん
2010/11/02(火) 20:19:39ID:???コンストラクタは基本的にプロパティをセットする場所と思えばいい
そういうもの作るならstaticメソッドで作ってください
0313nobodyさん
2010/11/02(火) 22:05:58ID:???戻り値が取れないのは、生成側のセマンティクスがそうなっているからという理由だけでなく、そういう用途のために用意されたものではないから。
またコンストラクタで処理が失敗した場合は、きちんと例外を投げてインスタンスの生成を阻止するのが筋。
なんつって
0315nobodyさん
2010/11/02(火) 22:48:28ID:???注意:
もし特定の haystack に needle があるかどうかを調べるだけの場合、 より高速でメモリ消費も少ない strpos() を代わりに使用してください。
0316nobodyさん
2010/11/02(火) 22:51:36ID:???同じような処理を何個も並べるか1つだけ正規表現使ってやるかのどっちがいいかって質問だろ
0317nobodyさん
2010/11/02(火) 22:53:57ID:???0318nobodyさん
2010/11/02(火) 23:15:49ID:???じゃねえよ
strposで2件10万ループ
0.17
strposで3件10万ループ
0.24
strposで4件10万ループ
0.31
preg_matchで2件10万ループ
0.19
preg_matchで3件10万ループ
0.2
preg_matchで4件10万ループ
0.2
3件以上はpreg_match
0319nobodyさん
2010/11/02(火) 23:27:33ID:???http://java-house.jp/ml/archive/j-h-b/017625.html#body
(略)
ベンチマークプログラムはソースコードを公開すべきです。なぜ公開しないの
か。「ベンチマーク対策を防ぐため」というのは詭弁でしょう。どうやったっ
て解析はされるものです。それより、
どういうコードだからこういう結果になった
と、ベンチマーク結果を見た者が判断できるように、ソースコードを公開すべ
きです。
ソースコードの公開されていないベンチマークプログラムは信頼しない方が良
いでしょう。
高木 浩光@電子技術総合研究所
http://www.etl.go.jp/~takagi/ (工事中)
0320nobodyさん
2010/11/02(火) 23:29:41ID:???正規表現次第?
0321nobodyさん
2010/11/02(火) 23:35:58ID:???$s = microtime(true);
$c = 0;
$str = "hogehoge";
for ($i = 0; $i < 100000; $i++) {
if (strpos($str, "mogemoge") || strpos($str, "hugahuga") || strpos($str, "hogehoge")) {
$c++;
}
/**
*preg_matchの場合
*
*/
// if (preg_match("/(mogemoge|hugahuga|hogehoge)/", $str)) {
// $c++;
// }
}
echo microtime(true) - $s . "\n";
echo $c;
意図的にhogehogeを最後に持ってきてるベンチだから
最初のstrposにhogehogeが入ってればstrposが早いのは当然
ただ平均的に考えた場合preg_matchのほうが上
0322321
2010/11/02(火) 23:36:43ID:???if (strpos($str, "mogemoge") || strpos($str, "hugahuga") || strpos($str, "hogehoge")) {
$c++;
}
↓に訂正
if (strpos($str, "mogemoge")!==false || strpos($str, "hugahuga")!==false || strpos($str, "hogehoge")!==false) {
$c++;
}
0323nobodyさん
2010/11/02(火) 23:40:05ID:???strstrの引数逆。
0325nobodyさん
2010/11/02(火) 23:49:27ID:???ちなみに>>321のコードをhogehogeを先頭にした場合
strposは1/3の時間になるがpreg_matchでは変わらない
結論としてstrposは関数呼び出しに比例して最悪実行時間が上がるが
preg_matchではそうではない
0326nobodyさん
2010/11/02(火) 23:52:14ID:???0327nobodyさん
2010/11/02(火) 23:57:41ID:???必要な機能で選ぶべきだ。
0328nobodyさん
2010/11/03(水) 00:06:04ID:???0329nobodyさん
2010/11/03(水) 00:07:08ID:???0330nobodyさん
2010/11/03(水) 00:19:00ID:???0331nobodyさん
2010/11/03(水) 00:28:16ID:???最初のほうでマッチする保証があればstrposのほうが早いから
少なければ少ないほどstrposがよくて
多ければ多いほどpreg_matchのほうがよい
0332nobodyさん
2010/11/03(水) 01:04:22ID:???実用上はさして差は無いと言えるんでは。
システム全体ではDBアクセスなどのほうがボトルネックになりそう。
0333nobodyさん
2010/11/03(水) 01:20:12ID:???preg_match("/hoge/",$str)とか正規表現使ってないものは確かに俺もないとは思うが目くじら立てるほどでもないよな
0334nobodyさん
2010/11/03(水) 09:01:46ID:???(あえて)preg*しか使ってはいけない
という規約を見たことがある
良い悪いは別にして、そういう考え方もあるって事だな
0335nobodyさん
2010/11/03(水) 09:08:17ID:???>>334
統一してる方が見やすいのは確かだな
pregは正規表現でも違っても使えるから統一するならこっちになるわ
0336nobodyさん
2010/11/03(水) 09:25:07ID:???でもifのコストが数万回繰り返してもその程度なら、別にstrposのループやin_arrayでいいんじゃ・・・とは思った。
検索対象語が大量に増えた場合に、「|」で連結してエスケープしないといけないpreg_matchよりは、
設定ファイルやDBから対象語を取得してそのままstrposやin_arrayにかけるほうがよっぽど楽な気が。
連結するまでもない少数なら尚更。
ちょっとしたスクリプトを書くときとかは個人の好みでpreg_match使っても全然OKだと思う。
>>334-335
ユーティリティとして関数やクラス作ってそれを使わせるようにすればいいんじゃね?
プログラムを読む側や書く側は実装がどうなっているか意識する必要はない。
0337nobodyさん
2010/11/03(水) 11:02:13ID:???最近までintvalかましてたよ
0338nobodyさん
2010/11/03(水) 11:07:15ID:???0339nobodyさん
2010/11/03(水) 11:11:07ID:???0340nobodyさん
2010/11/03(水) 11:28:10ID:???0343nobodyさん
2010/11/03(水) 12:06:13ID:???0344nobodyさん
2010/11/03(水) 14:40:28ID:???$a ++; // b !!
0345nobodyさん
2010/11/03(水) 16:16:38ID:bRpTkRq5parent::parent::でいいの?
0346nobodyさん
2010/11/03(水) 16:18:00ID:???■ このスレッドは過去ログ倉庫に格納されています