【PHP】下らねぇ質問はID出して書き込みやがれ 115
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2012/01/20(金) 05:43:23.62ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0724nobodyさん
2012/02/20(月) 14:14:15.72ID:???0725nobodyさん
2012/02/20(月) 14:19:42.73ID:7zywTD2d俺も繋がらないよ (千葉県でOCN回線)
0727nobodyさん
2012/02/20(月) 14:34:51.94ID:???jp.php.net→変なメッセージが出る
jp2.php.net→サーバが見つからない
0728nobodyさん
2012/02/20(月) 14:37:32.11ID:???http://us.php.net/
http://us2.php.net/
0729nobodyさん
2012/02/20(月) 14:40:31.59ID:???php.net
繋がらないPCだと[64.246.30.37]
繋がるPCだと[69.147.83.197]
0730nobodyさん
2012/02/20(月) 14:42:50.02ID:???0732nobodyさん
2012/02/20(月) 15:56:02.91ID:???0733nobodyさん
2012/02/20(月) 16:01:28.31ID:???内部コードがUTF16のPHPも作れるが、計画して進展しないのはやはりソースの解析速度だろ。
0734nobodyさん
2012/02/20(月) 16:09:55.54ID:???0735nobodyさん
2012/02/20(月) 16:15:07.69ID:???PHPはperlに元にしてるのか。
0736nobodyさん
2012/02/20(月) 16:15:38.57ID:???使える記号も選べるほどないし
0737nobodyさん
2012/02/20(月) 16:39:46.15ID:???規模が小さければトランザクションだ〜とかで済むけど
規模が大きくなると基本が通じなくなる事もあるみたいだしな
ttp://d.hatena.ne.jp/iad_otomamay/20110808/1312805917
見たいな事象もあったりするし
それならそれで手を考える必要はあるんだろうが
その手のライブラリをしっかりと整備出来ていなかったのが痛いな
0738nobodyさん
2012/02/20(月) 17:21:34.54ID:???固有の値をいれとけとあれほd
0741nobodyさん
2012/02/20(月) 19:42:12.40ID:???0742nobodyさん
2012/02/20(月) 20:14:43.94ID:???再コンパイルの仕方がわからないならxamppからPHP抜いて試してみるとよかろう
俺の使ってるXAMPP Lite 1.7.3のPHP5.3.4はONになってる
最新バージョンがどうかは知らないが
最新のxampp1.7.7はPHP5.3.8だし試してみる価値はあるだろう
0743nobodyさん
2012/02/20(月) 20:18:08.26ID:???読んでたのですか、ifとelseを多用して非常に読みにくくなってました。
php歴2年ですが、これって素人がよくやるようなことなのでしょうか?
なにか解決策はありますか?
0745nobodyさん
2012/02/20(月) 20:43:06.11ID:NoHq1hRP例えば、
あいうえおあ
という文字列があったら、あとあの間の文字の(いうえお)を表示する。と言うことは可能でしょうか?
0747nobodyさん
2012/02/20(月) 20:46:30.08ID:???0749743
2012/02/20(月) 21:09:36.19ID:Hy6/Os+0>>748
switch文をを試してみます。
0751nobodyさん
2012/02/21(火) 00:33:40.75ID:???a.phpで
<?php echo file_get_contents("http://localhost/b.php"); ?>
として、
b.phpで
<?php echo "hello"; ?>
とすると、固まってしまう。
b.phpで、file_put_contentsとかしてみると出力はあるから、アクセスはしてるんだけど、
レスポンスが取得できてないくさい。
fopenやstream_socket_clientもダメだった。
ちなみにa.phpでhtmlやtxtなどの静的コンテンツは取得できた。
a.phpをコマンドラインで実行すると普通にレスポンス返ってきてるんだが・・・
何が原因なのかさっぱりわからん。
0754nobodyさん
2012/02/21(火) 02:58:29.45ID:???ねえ、そのリンク先のだとトランザクション管理できないって言ってる?
そうじゃないなら何でそれ出したの?
0755nobodyさん
2012/02/21(火) 06:54:25.99ID:6SIN0kwRhttp://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
1つ目の例の書き方だと問題ないのですが、
2つ目の例の書き方の2行目をPHPで書くのは無理でしょうか?
同期化コストってのはようするにif文を毎回呼ぶのがよくないってことだと思うのですが、
2つ目の例の2行目の書き方がPHPでだめだとして、改善方法はありますか?
final class Singleton {
    private static final $instance = new Singleton();
    private function __construct() {}
    public static function getInstance() {
        return Singleton::$instance;
    }
}
$s = Singleton::getInstance();
$s2 = Singleton::getInstance();
var_dump($s);
var_dump($s2);
Fatal error: Cannot declare property Singleton::$instance final〜
そこで$instanceのfinalを取ると
Parse error: syntax error, unexpected T_NEW in〜
となります。
外からアクセスできるので質が違いますが、
private static finalに近そうなconstも試して見ましたが同様のエラーが出ます。
0757nobodyさん
2012/02/21(火) 07:19:30.05ID:???0758nobodyさん
2012/02/21(火) 07:20:50.57ID:???0759nobodyさん
2012/02/21(火) 08:11:46.42ID:???>>755
> 同期化コストってのはようするにif文を毎回呼ぶのがよくないってことだと思うのですが、
違う、同期化コストはJavaのsyncronized修飾子に対しての言葉
PHPではif文で毎回調べるのが常套手段となっている
http://www.php.net/manual/ja/language.oop5.properties.php
> 宣言時に初期値を設定することもできますが、初期値は定数値でなければなりません。
> つまり、コンパイル時に評価可能な値でなければならず、
> 実行時の情報がないと評価できない値であってはいけないということです。
0760751
2012/02/21(火) 08:31:30.02ID:???0761nobodyさん
2012/02/21(火) 10:14:06.04ID:???0762nobodyさん
2012/02/21(火) 10:14:54.16ID:???0763755
2012/02/21(火) 10:19:56.57ID:???レスありがとうございます。
>>759
なるほどそういう意味でしたか。
syncronizedがどういうものかはよくわかりませんが、
PHPでは最初の例が常套手段ということは理解しました。
比較対象のため少しJavaの勉強もしてみようと思います。
どうもありがとうございました。
0764nobodyさん
2012/02/21(火) 10:24:44.01ID:otlrgE39ftp_get関数を使って、リモートのファイルをローカルに保存したいのですが
うまくいきません。
リモートでPHPの動かしていると、オフィシャルマニュアルのいうところの
「ローカル」というのは、動いている場所を指してしまうのですか?
具体的に書くとレンタルサーバー上のtest.phpの中で、ftp_get関数を使うと
レンタルサーバーの/home/hoge/に「C:\temp\downloaded.txt」 という名前のファイルが
できてしまってローカルには何もダウンロードされないのですが、これは仕様ということですか?
0765nobodyさん
2012/02/21(火) 10:37:35.23ID:???0766nobodyさん
2012/02/21(火) 10:40:04.48ID:???Javaなんて知らんでも>>755程度ならPHPある程度やってるやつなら誰でも移植できる
0767nobodyさん
2012/02/21(火) 10:43:47.00ID:???0768nobodyさん
2012/02/21(火) 10:57:28.75ID:???ローカルとは実行してるコンピュータのこと
当然レンタルサーバーでftp_getを使えばftp_getの引数で指定した先からサーバー(ローカル)にダウンロードされ保存される
0769nobodyさん
2012/02/21(火) 10:59:15.38ID:otlrgE39やっぱりそうでしたか、目の前の箱だと思っていたのが間違いでしたね。汗
ありがとうございました。べつな方法を考えてみます。
0770nobodyさん
2012/02/21(火) 14:39:44.56ID:???<input type="checkbox" name="checkbox01[]" value="0"> 〜 <input type="checkbox" name="checkbox01[]" value="2">
とチェックボックスをつくりました。そしてPHPの処理部分では
// チェックボックスに値があれば
if($_GET["checkbox01"]){
foreach($_GET["checkbox01"] as $val){
if($val==0){
$data["A"]='あ';
}
elseif($val=1){
$data["B"]='い';
}
elseif($val=2){
$data["C"]='う';
}
}
// $dataがアレばそれぞれ
if($data["A"]){
print_r($data["A"]);
}
if($data["B"]){
print_r($data["B"]);
}
if($data["C"]){
print_r($data["C"]);
}
}
0771nobodyさん
2012/02/21(火) 14:41:32.79ID:???としたのですが、チェックすべてに値をつけても 「あい」 までしか表示されません。試しに // チェックボックスに値があれば の前で
print_r( $_GET["checkbox01"]);
としたら
Array ( [0] => 0 [1] => 1 [2] => 2 )
と表示され、// $dataがアレばそれぞれ の前でも
print_r($data);
としたら
Array ( [A] => あ [B] => い )
と表示されたため、foreach文ないがおかしいとはおもうのですが解決方法がわかりません。
どのようにしたらいいのでしょうか?
長くなってしまったので連投してすみません、どなたかお知恵をかしてください。
0772nobodyさん
2012/02/21(火) 14:43:28.71ID:???$val=2 → $val==2
0773nobodyさん
2012/02/21(火) 15:08:48.42ID:???別の人の解答なのかどっち?
ID無いからわからんな
0774770
2012/02/21(火) 15:21:10.42ID:???ありがとうございます。こんな凡ミスなんて・・・
あと調べててin_array関数というのもみつけたのですが、foreachで繰り返して探すより
if(in_array("0", $_GET["checkbox01"] ){
}
if(in_array("1", $_GET["checkbox01"] ){
}
といったように内容は同じだとおもうのですがin_arrayで調べたほうがいいのでしょうか?
0778nobodyさん
2012/02/21(火) 16:19:18.56ID:???$data["A"]='あ';
}
elseif($val=1){
$data["B"]='い';
}
elseif($val=2){
$data["C"]='う';
}
こんなことするなら最初からvalueにあいう入れればいいのに
0783nobodyさん
2012/02/21(火) 23:58:50.45ID:QmooF5El0784nobodyさん
2012/02/22(水) 00:03:26.59ID:???0786nobodyさん
2012/02/22(水) 01:07:04.45ID:HjiaSrjvCakePHPを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。
WordPressを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。
OpenPNEを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。
symfonyを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。
0787nobodyさん
2012/02/22(水) 01:09:47.45ID:???0788nobodyさん
2012/02/22(水) 01:39:15.45ID:HjiaSrjv0789nobodyさん
2012/02/22(水) 01:42:23.62ID:???0790nobodyさん
2012/02/22(水) 01:44:59.53ID:HjiaSrjv他の言語に比較して遅いです。
比較はJavaとPythonです。
0791nobodyさん
2012/02/22(水) 01:46:11.48ID:HjiaSrjvオブジェクト指向を始めると途端にパフォーマンスが悪くなるようです。
0792nobodyさん
2012/02/22(水) 01:48:41.94ID:HjiaSrjvローカル環境でも遅いのでどうしようもありません。
0793nobodyさん
2012/02/22(水) 01:54:46.01ID:???0794nobodyさん
2012/02/22(水) 01:57:04.91ID:HjiaSrjvアプリケーションスコープが無いのはわかっていますが、セッションはありますよね。
WordPressしかり、Cakeしかり、symfonyしかり、オブジェクト格納場所として
セッションは考えられていないようです。これが結果としDBへの
余分なアクセスを増大させているようです。
0795nobodyさん
2012/02/22(水) 01:58:42.03ID:HjiaSrjvたとえばOpenPNEが稼働しているサイトで機敏に動くところはありますか?
自分が知っている限り無いと思いますが・・・。
0796nobodyさん
2012/02/22(水) 02:10:14.28ID:???なんでもかんでもPHPのせいにすればいいってもんじゃない
0798nobodyさん
2012/02/22(水) 02:18:21.92ID:HjiaSrjv書いていますが、デフォルトの状態ですでに重いのです。
一切カスタマイズしていない状態です。ちなみに3.6系の最新版です。
デバックモードで起動するとものすごい数のSQLクエリが発行されています。
>>794についてはどう思われますか?
0799nobodyさん
2012/02/22(水) 02:20:08.85ID:HjiaSrjvそれ以上にクエリをムダに発行しているように思えるのです。
0800797
2012/02/22(水) 02:20:36.63ID:???PHP部に限って言うならopコードキャッシュ使う。
DBアクセス数が多くて、コネクション生成コスト、クエリコストが原因で遅いのであれば、PHP自体の問題ではなくなる
0801nobodyさん
2012/02/22(水) 02:21:25.34ID:???0803nobodyさん
2012/02/22(水) 02:23:07.36ID:HjiaSrjvたとえばJavaであれば
1.アプリケーションスコープ
2.セッションスコープ
3.リクエストスコープ
以上の3スコープに欲するデータが無い場合のみDBへアクセスしますが、
CakeやWordPress、OpenPNEなどの場合はお構いなしに毎回DBへアクセス
しているのが不思議です。
0804nobodyさん
2012/02/22(水) 02:26:05.08ID:???Webサーバを複数使うことを想定してそうなってるわけじゃなくて?
設定とかで変えられないの?ってか、変えられないからそのように断定しているんだろうけれど。
0805nobodyさん
2012/02/22(水) 02:30:02.12ID:???ちなみに期待するレスポンスはどの程度で、現状はどれくらい?
同時接続クライアント数など、必要なものを列挙してほしい。ベンチの結果でもいい。
0806nobodyさん
2012/02/22(水) 02:32:41.04ID:???0807nobodyさん
2012/02/22(水) 02:40:30.48ID:HjiaSrjv>>806
PHPの主要フレームワークやCMSのソースコードリーディングに基づき、
このスレを書き込みしています。実践というわけではありません。
気づいたことはオブジェクトの一時保存場所としてセッションが
使用されていないのが不思議なのです。だからSQL発行が非常に多い。
これはなぜですか?
0809nobodyさん
2012/02/22(水) 02:43:20.60ID:HjiaSrjvPHPは分散オブジェクトは対応していないのですか?
0810nobodyさん
2012/02/22(水) 02:46:14.38ID:???Javaのスコープの話が出てきた時点でこうなりそうな気はしていたが。
今後の話をわかりやすくするために「分散オブジェクトに対応する」というのがどういうことか伝えてもらえるかな。
0811nobodyさん
2012/02/22(水) 02:50:27.92ID:HjiaSrjv複数のコンピュータ間で同じオブジェクトを同一マシーン上で処理が済むことと同じようにすることですよね。
0812nobodyさん
2012/02/22(水) 02:53:35.00ID:HjiaSrjv0815nobodyさん
2012/02/22(水) 02:56:50.78ID:HjiaSrjvなぜ同じクエリを何度も発行しているのでしょうか?
OpenPNE3.6系です。
0816nobodyさん
2012/02/22(水) 03:00:29.37ID:???0817nobodyさん
2012/02/22(水) 03:02:33.49ID:HjiaSrjvその論法で行くと全部コメントアウトになりますが・・・。
私の質問はPHPでは答えにくのでしょうか?
0818nobodyさん
2012/02/22(水) 03:04:26.65ID:???>>815, 817
繰り返すが、それが本当に無駄なら報告すれば多方面から感謝されるからそうしたらいい。
0819nobodyさん
2012/02/22(水) 03:08:04.96ID:HjiaSrjvそんなに大げさなことでしょうか?
OpenPNEを試されたことがありますよね?
デバックモードで起動するとSQL発行数がわかりますが、すごい量です。
これはなぜですか?と言っているだけです。だから遅いんじゃないでしょうかと。
0820nobodyさん
2012/02/22(水) 03:09:29.52ID:HjiaSrjv昔はシリアライズのバグの話は聞いたことがありますが、さすがに今は解消しているはずです。
0821nobodyさん
2012/02/22(水) 03:09:46.81ID:???デバッグモードじゃなければ発行されないの?
何のために使われるクエリなのかは調べてないの?
OpenPNEは使ったこと無いよ。使ったこと無いならレスしないでっていうことなら喜んでレスやめる。
0822nobodyさん
2012/02/22(水) 03:09:49.44ID:???0823nobodyさん
2012/02/22(水) 03:09:54.82ID:???■ このスレッドは過去ログ倉庫に格納されています