トップページ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等)・フレームワークは各該当スレへ
0724nobodyさん2012/02/20(月) 14:14:15.72ID:???
ほんとだつながらない
0725nobodyさん2012/02/20(月) 14:19:42.73ID:7zywTD2d
>>723
俺も繋がらないよ (千葉県でOCN回線)
07267232012/02/20(月) 14:23:06.17ID:???
>>724-725
うちは、都内でflet's + Interlinkだ。
普通にさば落ちかな。
0727nobodyさん2012/02/20(月) 14:34:51.94ID:???
www.php.net→タイムアウト
jp.php.net→変なメッセージが出る
jp2.php.net→サーバが見つからない
0728nobodyさん2012/02/20(月) 14:37:32.11ID:???
usの2つは繋がる
http://us.php.net/
http://us2.php.net/
0729nobodyさん2012/02/20(月) 14:40:31.59ID:???
DNS浸透の問題じゃないか?

php.net
繋がらないPCだと[64.246.30.37]
繋がるPCだと[69.147.83.197]
0730nobodyさん2012/02/20(月) 14:42:50.02ID:???
ドドランド詳しく
0731nobodyさん2012/02/20(月) 15:44:56.71ID:???
>>716
同感

普段他の言語使ってるから
PHPで依頼されるとき$にイライラする
0732nobodyさん2012/02/20(月) 15:56:02.91ID:???
そしたらvarで変数定義して、あとで変数に$を付けるスクリプト作れ。
0733nobodyさん2012/02/20(月) 16:01:28.31ID:???
$がないPHPもつくれるだろうが人間の利便性より、解析処理速度を優先したんだろ。
内部コードがUTF16のPHPも作れるが、計画して進展しないのはやはりソースの解析速度だろ。
0734nobodyさん2012/02/20(月) 16:09:55.54ID:???
perlの変数に$がついてるからだろ
0735nobodyさん2012/02/20(月) 16:15:07.69ID:???
JavaScriptには付いてないけど。
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
07397212012/02/20(月) 19:29:31.34ID:???
>>722
ウウッ(´;ω;`)ヒントだけでも頼むよぉ・・・
0740nobodyさん2012/02/20(月) 19:35:40.43ID:???
>>739
英語だけじゃなくて日本語も読めないの?
0741nobodyさん2012/02/20(月) 19:42:12.40ID:???
PHP.net復活したくさ。
0742nobodyさん2012/02/20(月) 20:14:43.94ID:???
>>721
再コンパイルの仕方がわからないなら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年ですが、これって素人がよくやるようなことなのでしょうか?
なにか解決策はありますか?
0744nobodyさん2012/02/20(月) 20:30:10.23ID:???
>>743
>>595
0745nobodyさん2012/02/20(月) 20:43:06.11ID:NoHq1hRP
正規表現で特定の文字の間の文字を取り出すことはできますか?
例えば、
あいうえおあ
という文字列があったら、あとあの間の文字の(いうえお)を表示する。と言うことは可能でしょうか?
0746nobodyさん2012/02/20(月) 20:46:16.34ID:???
>>745
>>1
0747nobodyさん2012/02/20(月) 20:46:30.08ID:???
可能
0748nobodyさん2012/02/20(月) 20:49:21.61ID:???
>>743
今度からは>>1よめ

ifelse多様してるならswitch文が速いらしい
07497432012/02/20(月) 21:09:36.19ID:Hy6/Os+0
すいません、下げてました。

>>748
switch文をを試してみます。
0750nobodyさん2012/02/20(月) 23:39:14.07ID:???
>>747ありがとうございます。
0751nobodyさん2012/02/21(火) 00:33:40.75ID:???
NginXとFastCGIで、
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をコマンドラインで実行すると普通にレスポンス返ってきてるんだが・・・
何が原因なのかさっぱりわからん。
0752nobodyさん2012/02/21(火) 01:13:11.18ID:???
>>751
>>595
0753nobodyさん2012/02/21(火) 01:20:19.98ID:???
>>752
>>751のどこに質問と書いてある?
0754nobodyさん2012/02/21(火) 02:58:29.45ID:???
>>737
ねえ、そのリンク先のだとトランザクション管理できないって言ってる?
そうじゃないなら何でそれ出したの?
0755nobodyさん2012/02/21(火) 06:54:25.99ID:6SIN0kwR
WikipediaのSingletonのJavaで書かれた項目をPHPに移植したいのですが、
http://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も試して見ましたが同様のエラーが出ます。
0756nobodyさん2012/02/21(火) 07:18:35.44ID:???
>>755
コンストラクタ内でやればいいのでは?
0757nobodyさん2012/02/21(火) 07:19:30.05ID:???
ああごめん、違うか
0758nobodyさん2012/02/21(火) 07:20:50.57ID:???
final外すとか
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:???
ルール無視したまま退散か、このlocalhost野郎
0762nobodyさん2012/02/21(火) 10:14:54.16ID:???
ルール守った所でお前みたいな無能には一生わからないからな
07637552012/02/21(火) 10:19:56.57ID:???
>>756-759
レスありがとうございます。

>>759
なるほどそういう意味でしたか。
syncronizedがどういうものかはよくわかりませんが、
PHPでは最初の例が常套手段ということは理解しました。

比較対象のため少しJavaの勉強もしてみようと思います。
どうもありがとうございました。
0764nobodyさん2012/02/21(火) 10:24:44.01ID:otlrgE39
基本的なことかもしれませんが、教えてください。

ftp_get関数を使って、リモートのファイルをローカルに保存したいのですが
うまくいきません。

リモートでPHPの動かしていると、オフィシャルマニュアルのいうところの
「ローカル」というのは、動いている場所を指してしまうのですか?

具体的に書くとレンタルサーバー上のtest.phpの中で、ftp_get関数を使うと
レンタルサーバーの/home/hoge/に「C:\temp\downloaded.txt」 という名前のファイルが
できてしまってローカルには何もダウンロードされないのですが、これは仕様ということですか?
0765nobodyさん2012/02/21(火) 10:37:35.23ID:???
Java知らないのにJavaのコードを移植しようとはこれいかに
0766nobodyさん2012/02/21(火) 10:40:04.48ID:???
んな難しいことじゃないだろ
Javaなんて知らんでも>>755程度ならPHPある程度やってるやつなら誰でも移植できる
0767nobodyさん2012/02/21(火) 10:43:47.00ID:???
でもつまづいてるのは、知らないからだというw
0768nobodyさん2012/02/21(火) 10:57:28.75ID:???
>>764
ローカルとは実行してるコンピュータのこと
当然レンタルサーバーでftp_getを使えばftp_getの引数で指定した先からサーバー(ローカル)にダウンロードされ保存される

0769nobodyさん2012/02/21(火) 10:59:15.38ID:otlrgE39
>>768
やっぱりそうでしたか、目の前の箱だと思っていたのが間違いでしたね。汗
ありがとうございました。べつな方法を考えてみます。
0770nobodyさん2012/02/21(火) 14:39:44.56ID:???
PHPでのチェックボックスでの値の受け取り方や配列の扱い方よくわからないので教えて下さい。htmlの部分で
<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=1  → $val==1
$val=2 → $val==2
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命令セット渡しても文句言いそうだな
■ このスレッドは過去ログ倉庫に格納されています