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

【PHP】下らねぇ質問はID出して書き込みやがれ 115

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/01/20(金) 05:43:23.62ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 114
http://kohada.2ch.net/test/read.cgi/php/1325437405/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0773nobodyさん2012/02/21(火) 15:08:48.42ID:???
これは質問者が間違って書いたから訂正してるのか、
別の人の解答なのかどっち?
ID無いからわからんな
07747702012/02/21(火) 15:21:10.42ID:???
>>772
ありがとうございます。こんな凡ミスなんて・・・
あと調べててin_array関数というのもみつけたのですが、foreachで繰り返して探すより

if(in_array("0", $_GET["checkbox01"] ){
}
if(in_array("1", $_GET["checkbox01"] ){
}

といったように内容は同じだとおもうのですがin_arrayで調べたほうがいいのでしょうか?
0775nobodyさん2012/02/21(火) 15:37:57.26ID:???
>>774
全部処理するならforeach使うけどなぁ
in_arrayは検索する時だけ
07767702012/02/21(火) 16:07:46.92ID:???
>>775
ありがとうございます。
結局この場合はどちらがいいのでしょうか?
0777nobodyさん2012/02/21(火) 16:17:22.51ID:???
>>776
この場合はforeach
0778nobodyさん2012/02/21(火) 16:19:18.56ID:???
if($val==0){
$data["A"]='あ';
}
elseif($val=1){
$data["B"]='い';
}
elseif($val=2){
$data["C"]='う';
}

こんなことするなら最初からvalueにあいう入れればいいのに
0779nobodyさん2012/02/21(火) 16:59:54.36ID:???
>>773
質問内容を理解してないから分からないんじゃないのか?
よって君はチェリーボーイ
0780nobodyさん2012/02/21(火) 17:07:19.21ID:???
>>779
>>1読めって言ってんのがわかんねーやつは引っ込んでろよ
07817702012/02/21(火) 17:08:17.74ID:???
>>777
ありがとうございます。
そうじゃない場合はどんなときでしょうか?
0782nobodyさん2012/02/21(火) 17:15:36.37ID:???
>>781
配列にひとつの値があるか検索する時
0783nobodyさん2012/02/21(火) 23:58:50.45ID:QmooF5El
PHPの遅さを解消する方法はありますか?
0784nobodyさん2012/02/22(水) 00:03:26.59ID:???
あなたの頭の回転の遅さを解消しましょう
0785nobodyさん2012/02/22(水) 00:07:59.95ID:???
>>783
無駄な動作をなくせばいい
0786nobodyさん2012/02/22(水) 01:07:04.45ID:HjiaSrjv
>>785
CakePHPを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。

WordPressを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。

OpenPNEを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。

symfonyを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。
0787nobodyさん2012/02/22(水) 01:09:47.45ID:???
また発作か
0788nobodyさん2012/02/22(水) 01:39:15.45ID:HjiaSrjv
結局、言語自体が遅い気がします。
0789nobodyさん2012/02/22(水) 01:42:23.62ID:???
今時体感できるほど遅いなら単にサーバがしょぼいだけだろ
0790nobodyさん2012/02/22(水) 01:44:59.53ID:HjiaSrjv
>>789
他の言語に比較して遅いです。
比較はJavaとPythonです。
0791nobodyさん2012/02/22(水) 01:46:11.48ID:HjiaSrjv
PHPもページ単位で処理が終わるものなら早いですが、
オブジェクト指向を始めると途端にパフォーマンスが悪くなるようです。
0792nobodyさん2012/02/22(水) 01:48:41.94ID:HjiaSrjv
>>789
ローカル環境でも遅いのでどうしようもありません。
0793nobodyさん2012/02/22(水) 01:54:46.01ID:???
じゃ窓からPCでも捨てればいいと思うよ
0794nobodyさん2012/02/22(水) 01:57:04.91ID:HjiaSrjv
PHPでセッションにオブジェクトを格納することは少ないのでしょうか?
アプリケーションスコープが無いのはわかっていますが、セッションはありますよね。
WordPressしかり、Cakeしかり、symfonyしかり、オブジェクト格納場所として
セッションは考えられていないようです。これが結果としDBへの
余分なアクセスを増大させているようです。
0795nobodyさん2012/02/22(水) 01:58:42.03ID:HjiaSrjv
>>793
たとえばOpenPNEが稼働しているサイトで機敏に動くところはありますか?
自分が知っている限り無いと思いますが・・・。
0796nobodyさん2012/02/22(水) 02:10:14.28ID:???
OpenPNE使ってるサイトなんて画像が多かったりコード量が多いサイトがほとんどだろ
なんでもかんでもPHPのせいにすればいいってもんじゃない
0797nobodyさん2012/02/22(水) 02:18:02.00ID:???
>>789
さすがにそれは無いわ。サーバがしょぼいの敷居がよほど高くなければ。
0798nobodyさん2012/02/22(水) 02:18:21.92ID:HjiaSrjv
>>796
書いていますが、デフォルトの状態ですでに重いのです。
一切カスタマイズしていない状態です。ちなみに3.6系の最新版です。
デバックモードで起動するとものすごい数のSQLクエリが発行されています。
>>794についてはどう思われますか?
0799nobodyさん2012/02/22(水) 02:20:08.85ID:HjiaSrjv
PHPのインタープリタが遅いのは承知していますが、
それ以上にクエリをムダに発行しているように思えるのです。
08007972012/02/22(水) 02:20:36.63ID:???
>>798
PHP部に限って言うならopコードキャッシュ使う。
DBアクセス数が多くて、コネクション生成コスト、クエリコストが原因で遅いのであれば、PHP自体の問題ではなくなる
0801nobodyさん2012/02/22(水) 02:21:25.34ID:???
本当にそれが無駄なのであれば改善すれば世界中の人に喜ばれるよ。
0802nobodyさん2012/02/22(水) 02:22:22.14ID:???
>>794についてはどう思われますか?

一人だけで使うなら別にいいんじゃね
0803nobodyさん2012/02/22(水) 02:23:07.36ID:HjiaSrjv
PHPのリソースの捉え方が非常に大雑把で困惑しています。

たとえばJavaであれば
1.アプリケーションスコープ
2.セッションスコープ
3.リクエストスコープ

以上の3スコープに欲するデータが無い場合のみDBへアクセスしますが、
CakeやWordPress、OpenPNEなどの場合はお構いなしに毎回DBへアクセス
しているのが不思議です。
0804nobodyさん2012/02/22(水) 02:26:05.08ID:???
>>803
Webサーバを複数使うことを想定してそうなってるわけじゃなくて?
設定とかで変えられないの?ってか、変えられないからそのように断定しているんだろうけれど。
0805nobodyさん2012/02/22(水) 02:30:02.12ID:???
>>803
ちなみに期待するレスポンスはどの程度で、現状はどれくらい?
同時接続クライアント数など、必要なものを列挙してほしい。ベンチの結果でもいい。
0806nobodyさん2012/02/22(水) 02:32:41.04ID:???
それがわからないから管を巻いてんじゃねえかな
0807nobodyさん2012/02/22(水) 02:40:30.48ID:HjiaSrjv
>>805
>>806
PHPの主要フレームワークやCMSのソースコードリーディングに基づき、
このスレを書き込みしています。実践というわけではありません。

気づいたことはオブジェクトの一時保存場所としてセッションが
使用されていないのが不思議なのです。だからSQL発行が非常に多い。
これはなぜですか?
0808nobodyさん2012/02/22(水) 02:41:22.45ID:???
>>807
>>804の1行目は理解できる?
0809nobodyさん2012/02/22(水) 02:43:20.60ID:HjiaSrjv
>>808
PHPは分散オブジェクトは対応していないのですか?
0810nobodyさん2012/02/22(水) 02:46:14.38ID:???
>>809
Javaのスコープの話が出てきた時点でこうなりそうな気はしていたが。

今後の話をわかりやすくするために「分散オブジェクトに対応する」というのがどういうことか伝えてもらえるかな。
0811nobodyさん2012/02/22(水) 02:50:27.92ID:HjiaSrjv
>>810
複数のコンピュータ間で同じオブジェクトを同一マシーン上で処理が済むことと同じようにすることですよね。
0812nobodyさん2012/02/22(水) 02:53:35.00ID:HjiaSrjv
OpenPNE,WordPress、CakePHPはセッションへオブジェクトを格納する設計になっていないのでしょうか?
0813nobodyさん2012/02/22(水) 02:54:02.25ID:???
>>811
それでいいのなら、対応してる。
0814nobodyさん2012/02/22(水) 02:55:12.88ID:???
>>812
ソースコードリーディングは諦めたの?
0815nobodyさん2012/02/22(水) 02:56:50.78ID:HjiaSrjv
>>812
なぜ同じクエリを何度も発行しているのでしょうか?
OpenPNE3.6系です。
0816nobodyさん2012/02/22(水) 03:00:29.37ID:???
いらなクエリをコメントアウトすればいいんじゃね?
0817nobodyさん2012/02/22(水) 03:02:33.49ID:HjiaSrjv
>>816
その論法で行くと全部コメントアウトになりますが・・・。

私の質問はPHPでは答えにくのでしょうか?
0818nobodyさん2012/02/22(水) 03:04:26.65ID:???
そろそろしんどい。

>>815, 817
繰り返すが、それが本当に無駄なら報告すれば多方面から感謝されるからそうしたらいい。
0819nobodyさん2012/02/22(水) 03:08:04.96ID:HjiaSrjv
>>818
そんなに大げさなことでしょうか?
OpenPNEを試されたことがありますよね?
デバックモードで起動するとSQL発行数がわかりますが、すごい量です。
これはなぜですか?と言っているだけです。だから遅いんじゃないでしょうかと。
0820nobodyさん2012/02/22(水) 03:09:29.52ID:HjiaSrjv
セッションにオブジェクトを格納しない理由があるのでしょうか?
昔はシリアライズのバグの話は聞いたことがありますが、さすがに今は解消しているはずです。
0821nobodyさん2012/02/22(水) 03:09:46.81ID:???
>>819
デバッグモードじゃなければ発行されないの?
何のために使われるクエリなのかは調べてないの?
OpenPNEは使ったこと無いよ。使ったこと無いならレスしないでっていうことなら喜んでレスやめる。
0822nobodyさん2012/02/22(水) 03:09:49.44ID:???
セッション切れるまでリソース保持とかどんな罰ゲーム
0823nobodyさん2012/02/22(水) 03:09:54.82ID:???
x86命令セット渡しても文句言いそうだな
0824nobodyさん2012/02/22(水) 03:11:44.08ID:???
どういう学び方をしたらこんなこじらせた頭になるんだ?
0825nobodyさん2012/02/22(水) 03:11:56.60ID:HjiaSrjv
>>821
デバッグモードで起動するとSQLクエリの発行数がわかります。
0826nobodyさん2012/02/22(水) 03:13:20.43ID:HjiaSrjv
>>822
それならそれでいいんです。
PHPでは罰ゲームレベルという理解でよろしいのですね。
0827nobodyさん2012/02/22(水) 03:13:21.46ID:???
こんなとこで使ったこと無い人相手にがんばるくらいならコード読み進めてみたら?
0828nobodyさん2012/02/22(水) 03:14:30.57ID:HjiaSrjv
結局のところ、
PHPではセッションにオブジェクトを格納するのは一般的ではないという結論ですね。
0829nobodyさん2012/02/22(水) 03:15:13.92ID:???
>>826
Javaだと放置セッションのリソースはいつ破棄されるの?
0830nobodyさん2012/02/22(水) 03:15:30.89ID:???
>>826
だから言っただろ
一人だけで使うなら別にいいんじゃね
って
0831nobodyさん2012/02/22(水) 03:15:45.98ID:HjiaSrjv
よくわかりました。道理でセッションが使用されていないわけだ。
0832nobodyさん2012/02/22(水) 03:16:55.71ID:HjiaSrjv
>>829
アプリケーションサーバーの設定による。
ただし、プログラムレベルでは細かく殺してリソースのムダ遣いを減らします。
0833nobodyさん2012/02/22(水) 03:17:02.95ID:???
他人のコードを読む時の絶望感といったら言葉にならない
らーらーらー ららーらー 言葉になら〜ない
0834nobodyさん2012/02/22(水) 03:17:23.17ID:???
PHPだけの問題じゃないでしょうに
Javaだって同じ事
0835nobodyさん2012/02/22(水) 03:17:48.03ID:???
>>832
PHPも一緒だよ。
0836nobodyさん2012/02/22(水) 03:18:45.31ID:???
基礎知識が足りなさすぎるだろ
もっと幅広く勉強しろよ
0837nobodyさん2012/02/22(水) 03:19:08.08ID:HjiaSrjv
もう大丈夫です。
PHPではセッションにオブジェクトを格納するのは一般的ではないということが
よくわかりました。
0838nobodyさん2012/02/22(水) 03:20:04.33ID:???
どういたしまして。
0839nobodyさん2012/02/22(水) 03:24:16.48ID:HjiaSrjv
セッションにオブジェクトを格納するのはPHPでは一般的では
ないとわかりましたが、それはPHPプログラマにとって尺に触ることでしょうか?
0840nobodyさん2012/02/22(水) 03:27:56.08ID:HjiaSrjv
尺に触ったのであればすみまんでした。特に悪気はありません。
0841nobodyさん2012/02/22(水) 03:30:45.46ID:???
癪に障るかってどういうことだろ。
たとえば一般的ではないことを強要されたら癪に障るかも知れないけれど。
0842nobodyさん2012/02/22(水) 03:38:58.82ID:???
もしかして煽ろうとしていたのか…?
0843nobodyさん2012/02/22(水) 03:57:13.25ID:???
>>840
キレてないっスよ
ペチパーキレさせたら大したもんスよ
0844nobodyさん2012/02/22(水) 04:52:15.14ID:???
PHPでC言語の実装するとか言ってたのはどうなったんだ?
0845nobodyさん2012/02/22(水) 06:32:14.02ID:???
PHPだからとかJavaだからとか関係ないから。
Webアプリケーションの設計の話でしょ。
0846nobodyさん2012/02/22(水) 07:41:18.69ID:???
>>795
JavaとPythonで比較してるなら、OpenPNEに相当するJavaとPythonで実装されたもので
機敏に動くものを知りたい。
0847nobodyさん2012/02/22(水) 08:55:42.21ID:???
もう大丈夫です。
PHPではセッションにオブジェクトを格納するのは一般的ではないということが
よくわかりました。
0848nobodyさん2012/02/22(水) 09:00:26.08ID:???
PHPでなくても一般的ではない
0849nobodyさん2012/02/22(水) 09:03:48.77ID:???
>>848
嘘つくなw
0850nobodyさん2012/02/22(水) 09:10:04.74ID:???
コネクションプーリングってのはそもそもアプリケーション鯖が対応してなければ使えない
0851nobodyさん2012/02/22(水) 09:13:27.28ID:???
>>850
当然。だからphpではコネプール不可。
0852nobodyさん2012/02/22(水) 09:15:30.80ID:???
セッションの話はどうでもいいが、openpneが激重なのは同意。
かなりヤバイレベル。バージョン2の時代はマシだった。
0853nobodyさん2012/02/22(水) 09:17:48.11ID:???
んでコネクションプーリングを実現するのにセッションが必要なんて
そんなヴァカな話があるのか
0854nobodyさん2012/02/22(水) 09:24:03.91ID:???
>>853
たしかに、唐突にコネクションプーリングの話は変だとは思った。
その逆も必要ないかと。
話の流れとは関係ないw
0855nobodyさん2012/02/22(水) 10:49:21.91ID:???
>>852
可能です。
以上。
↓次どうぞ
0856nobodyさん2012/02/22(水) 11:04:16.02ID:yvJnpOho
>>783
CGIじゃなくてモジュールで動作させれば早いと書いてあった。
今のところはCGIで動作の仕様になってる。
0857nobodyさん2012/02/22(水) 11:17:37.00ID:???
頭大丈夫 ?
0858nobodyさん2012/02/22(水) 11:27:57.48ID:???
もう手遅れかと
0859nobodyさん2012/02/22(水) 15:35:04.94ID:???
コネクションプーリングは言語レベルのサポートは無い。
0860nobodyさん2012/02/22(水) 15:37:33.90ID:???
Javaのようなオブジェクト指向言語では普通にオブジェクトをセッションへ格納する。
0861nobodyさん2012/02/22(水) 17:05:21.76ID:???
いいえアプリケーションで管理するのが普通です
0862nobodyさん2012/02/22(水) 17:34:31.83ID:???
setcookie();の挙動について悩んでいます
a.phpで
echo $_COOKIE['testvar1'];
var_dump($_COOKIE);
---
b.phpで
setcookie('testvar1', 'bbb') //a.phpでbbbが出力される
---
c.phpで
setcookie('testvar1', 'ccc') //a.phpでcccが出力されない
setcookie('testvar2', 'xxx') //a.phpでtestvar2自体が確認出来ない

と、以上のようにしてる時、b.php → a.php の順番でアクセスするとechoもvar_dumpも正常な結果を返すんですが、その後
c.php → a.php の順番でアクセスするとechoはbbbを返し、var_dumpは追加したtestvar2自体を返さずtestvar1のみbbbとして返します
※c.php自体の中で echo $_COOKIE['testvar1'];すればcccを返します。また、c.phpのsetcookie();の返り値は1です
※また、b.phpの中でクッキーに入れる値を変更した場合はa.phpで変更後の値が確認出来ますが
c.phpの中で値を変更しても上書きされません(c.phpの中での確認です)

ドメインは全て同じで、原因が全くわかりません
何か考えられる対処法やチェック箇所あるでしょうか?
申し訳ないですが、どなたかご意見お願いします
0863nobodyさん2012/02/22(水) 19:09:47.20ID:???
ブラウザを初期化する
0864nobodyさん2012/02/22(水) 19:28:43.76ID:???
ありがとうございました!
0865nobodyさん2012/02/22(水) 19:35:22.61ID:???
最近は、ID出さなくても答えて貰える様になったのか。
これがゆとりか。
0866nobodyさん2012/02/22(水) 19:44:07.26ID:???
ID指摘したかったら、回答しつつ、ID出すように促せよ。
IDID言うやつ、回答しないんだよな。
0867nobodyさん2012/02/22(水) 19:46:05.87ID:???
>>1
0868nobodyさん2012/02/22(水) 19:46:44.23ID:???
昨日のチェリーボーイが居ますね
08698622012/02/22(水) 20:41:14.26ID:culdIBNJ
すみません、今気づきましたID出してなかったです。すみませんでした
その後もブラウザ再起動などしてやったんですが
やはりc.phpでsetcookie();した値はc.php以外で確認出来ません
なんなんでしょうか?
0870nobodyさん2012/02/22(水) 20:44:30.18ID:???
>>869
問題が再現するコード出して
0871nobodyさん2012/02/22(水) 20:50:21.88ID:???
>>869
たぶんpath
0872nobodyさん2012/02/22(水) 21:49:26.94ID:???
HTTPのヘッダも確認してみれば
■ このスレッドは過去ログ倉庫に格納されています