【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等)・フレームワークは各該当スレへ
0450nobodyさん
2012/02/08(水) 22:12:19.41ID:skUmVjLKこええ。わざとだよね?
0451nobodyさん
2012/02/08(水) 22:48:45.68ID:???PHPはマルチスレッドに対応していない
curlで出来るのはマルチスレッドモドキだって
0452nobodyさん
2012/02/08(水) 22:51:01.40ID:???0453nobodyさん
2012/02/08(水) 23:44:16.03ID:???0454nobodyさん
2012/02/09(木) 01:41:30.50ID:???混同してるのは質問者だけじゃん
0455nobodyさん
2012/02/09(木) 02:47:23.28ID:???0456nobodyさん
2012/02/09(木) 02:54:23.71ID:???ん?並列処理を行うことが目的なの?
目的によって手段を変えるのは当たり前なんだから>>444は別におかしくないだろ
0457nobodyさん
2012/02/09(木) 02:56:55.02ID:???「並列処理=並列してWebリソースにアクセスすること」
って考えしかないからそうなるのかな。
それが目的ならcurlでいいんじゃね、とは思うけれど。
0458438
2012/02/09(木) 09:29:47.73ID:vkcl0tGlありがとうございます。万事うまくいきましたー
0459nobodyさん
2012/02/09(木) 10:48:15.39ID:/qdirMi/マルチタスク=マルチスレッド
0460nobodyさん
2012/02/09(木) 11:01:18.23ID:mqFxDq28【PHPのバージョン】PHP5以降
【質問内容】
変数の未定義を注意されるので、自作のスクリプトで使用している変数・配列を
$value = NULL; で全て初期化していますが、関数によっては初期化しても勝手に未定義に戻されてしまうようです。
例えば以下のようなparse_urlがそのひとつなのですが、皆さんはどのように処理してますか?関数から得た値は全部isset等でチェックしています?それともerror_reportingを変えて無視してますでしょうか?
正直なところ、スクリプト内で使用されている関数を通した変数全部チェックするのはとても大変なのでそこまですべきか悩み中です。
php -l phpスクリプト ではチェックしてくれないですよね?
parse_urlを使ったスクリプト例
<?php
error_reporting(E_ALL);
$a = NULL;
$a['host'] = NULL;
$a = parse_url("www.google.com");
if ($a === false) print "parse_url is false\n";
print $a['host']."\n";
?>
実行結果
Notice: Undefined index: host in /home/test/test.php on line 12
0461nobodyさん
2012/02/09(木) 11:16:27.50ID:???$a['host'] = NULL;
で、上の行は意味が無いし、
$a = parse_url("www.google.com");
で上の2行が意味なしになるのですが、分かります?
0462460
2012/02/09(木) 11:19:34.68ID:???はい。値が上書きされてしまうので意味なしになるだろうとは思いました。
こういう場合、一般的にどう対応されているのかなー と思いまして。
0463nobodyさん
2012/02/09(木) 11:26:51.20ID:???あと、そもそものNotice: が出るのは、
parse_urlの仕様では、'host'が必ず含まれるわけではないからだね。
初期化の話じゃないのよ。
http://php.net/manual/ja/function.parse-url.php
でhostが出るような例をみるといーよ。
0464nobodyさん
2012/02/09(木) 11:48:50.45ID:???<?php の次の行はインデントする派? しない派?
0465460
2012/02/09(木) 11:56:22.30ID:???回答ありがとうございます。
やはり、怪しい関数は全て割り出してissetでチェックですかねー。
parse_urlでは'host'を使うなら'host'をissetでチェックして
セットされているか確認する必要がありそうですね。
上記の例では'path'にwww.google.comが入るみたいですね。
0466nobodyさん
2012/02/09(木) 12:06:12.88ID:vkcl0tGl頻繁にではないけど、もともとの$aを初期値としてセットしといて
関数の戻り値を$aにマージするようなコードを書くことはあるよ。
$a = array('host'=>null); // 初期値
if (($b = parse_url('...')) !== false) {
$a = $b + $a; // or $a = array_merge($a, $b);
}
0471nobodyさん
2012/02/09(木) 19:45:03.31ID:???0474nobodyさん
2012/02/10(金) 01:24:38.27ID:???俺もそうしよう。 回答有難う
0475nobodyさん
2012/02/10(金) 01:31:09.96ID:???そんなことするなら
if(empty($a) && isset($a['host'])){
echo $a['host']."\n";
}else{
echo "parse_url is false\n";
}
でいいんじゃ?
0476nobodyさん
2012/02/10(金) 12:33:14.85ID:LrusZM1cバグを最小限に押さえるのに良い方法ってありますか。
0478nobodyさん
2012/02/10(金) 14:16:48.87ID:LrusZM1c考えて考えて、
とりあえず書いてみて
でも、ゆわれるまで気づきません。
0480nobodyさん
2012/02/10(金) 15:08:52.50ID:???配列の中身が
Array
という文字列で出力されてしまうのですが、これはどうしてでしょうか?
0481nobodyさん
2012/02/10(金) 15:09:31.57ID:???0483nobodyさん
2012/02/10(金) 16:29:00.81ID:LrusZM1c当てはまりすぎるんですが、ヤバイですか?
0484nobodyさん
2012/02/10(金) 17:21:29.90ID:???0485nobodyさん
2012/02/10(金) 18:45:58.39ID:e8YNZNTFプログラマと呼べるレベルじゃないのにほとんど当てはまらなかった
0487nobodyさん
2012/02/10(金) 19:30:17.25ID:???0488nobodyさん
2012/02/10(金) 19:42:29.54ID:???これおまいらもやってるのか?www
0489nobodyさん
2012/02/10(金) 21:44:07.87ID:2T73dJDEFALSEがfalseではなくなるかもしれないから
FALSEであることを期待してfalseと比較なんかしちゃってると
痛い目に遭いますよという事で良いですよね?
0490nobodyさん
2012/02/10(金) 21:49:35.75ID:???ぜんぜん違う。
0492nobodyさん
2012/02/10(金) 22:45:10.70ID:2T73dJDEzend_constants.c上ではTRUE, FALSE, NULLと全部大文字で
定数に登録しようとしてるけど、大文字小文字は無視してるから
小文字に変換されて登録されてて、zend_compile.cで使う時も
小文字に変換し直してハッシュから定数を引っ張り出すだけだったw
0493nobodyさん
2012/02/10(金) 22:47:02.97ID:???0494nobodyさん
2012/02/10(金) 23:47:10.19ID:???フォールス?フォルス?フォールズ?
うちじゃ、ホルスw って読んでる人が一番多いようなw
0495nobodyさん
2012/02/11(土) 00:28:43.74ID:???0496nobodyさん
2012/02/11(土) 02:22:50.24ID:nzSgga7d0497nobodyさん
2012/02/11(土) 13:25:30.90ID:dnJZM8FPMac OS XのXAMPP環境にpeclでmemcacheをインストールしたのですが、有効になりません。
php.iniにはextension="memcache.so"が追加されています。(自動で追加されていた)
試しに、pecl install mongoしてみたら、こちらは問題なく有効になりました。(phpinfo()で確認)
何が原因か分かりますでしょうか?
0499nobodyさん
2012/02/11(土) 14:06:29.61ID:dnJZM8FP0500nobodyさん
2012/02/11(土) 14:15:29.85ID:???0502nobodyさん
2012/02/11(土) 15:08:08.04ID:???0504nobodyさん
2012/02/11(土) 15:15:21.43ID:dnJZM8FPvimwareって何ですか?
0506nobodyさん
2012/02/11(土) 15:55:57.42ID:dnJZM8FPじゃぁ、CentOSってくだりも書き間違いかな?
CentOSはpeclでインストールするよりyumの方がいいから。
0507nobodyさん
2012/02/11(土) 17:30:38.33ID:???0508nobodyさん
2012/02/11(土) 18:05:45.75ID:???「設立日」の値を保存する変数があったとして、
$establishment_day → 英語変換
$est_day → 短縮
$setsuritsu → ローマ字
などに出来ますが、長すぎると読みづらいし、
短縮文字だとわかりづらい場合があります。
(messageをmsgにするなど、一般的な短縮文字ならわかるのですが・・・
みなさんはどうしてますか?
0509508
2012/02/11(土) 18:06:06.37ID:bam167aq0510nobodyさん
2012/02/11(土) 18:11:09.41ID:dnJZM8FP有意義なレスありがとうございます。
phpinfo();とclass_exists('Memcache');で確認しました。
XAMPP for Mac OS X のextensionは、以下のディレクトリに入ります。
/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/
上記に、pecl install memcache した memcache.so がインストールされています。
これが有効にならなくて悩んでいます。
試しに、pecl install mongo した mongo.so (phpinfo()で有効になっている)を
_mongo.so にリネームすると、無効になるので、このパスで合っているはず。
0511nobodyさん
2012/02/11(土) 18:15:17.70ID:dnJZM8FPあまり一般的な短縮名でなければ、長いままにしておきます。
一々仕様書やコメントを読まなければいけないのは、他人に不便だと思うので。
長い関数名や変数名はスペルミスや覚えられないという問題もあると思いますが、
入力補完してくれるエディターを使えばいいと思います。
0512nobodyさん
2012/02/11(土) 18:35:54.65ID:dnJZM8FPPHPのコンパイルオプションに、--enable-memcacheが付いてないからかな?
0513nobodyさん
2012/02/11(土) 19:08:10.33ID:F655tJI8俺なら$e_day
0514507
2012/02/11(土) 19:10:56.25ID:???> Newer PHP versions don't have a --enable-memcache options; simply installing the PECL package will be enough... so to be absolutely clear, you WON'T have to recompile PHP to use memcache.
ってのを見たので、configureのオプションにあるならつけないとだめかも
0515nobodyさん
2012/02/11(土) 19:20:50.28ID:???俺もたぶんそうする。
ちなみに今使ってる変数名
$t_name
$t_t_name
$r_name
入力補完もあるし、他の人が読むことを考えると、
もっとわかりやすい方がいいんだろうけど。
0516nobodyさん
2012/02/11(土) 20:08:28.77ID:???0517nobodyさん
2012/02/11(土) 20:22:41.21ID:nzSgga7d俺だけじゃなくてよかった
0518nobodyさん
2012/02/11(土) 21:25:26.47ID:???0520508
2012/02/11(土) 22:01:37.87ID:bam167aqこれだと自分の場合、「終了日」と誤解しそうで。
キャメルケースは関数名に使うことありますが、
変数名はないですね。
コメントとか仕様書に残せばある程度短縮文字でも良いんですかね。
さすがに$establishment_dayは長すぎてパッと見た瞬間分かりづらいし。
0522nobodyさん
2012/02/11(土) 23:53:10.01ID:ec+1ByNd【サーバ環境】
CentOS6.2 + xdebug 2.1.3
php.iniの設定
[XDebug]
extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_port=9001 <- 9000ではNGという海外の書き込みを見て変更
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.0.100
xdebug.remote_mode=req
phpinfoでxdebugがenableになってるのを確認
【クライアント環境】
Windows 7 + Eclipse Indigo
ネットワーク設定->192.168.0.100/24 固定IP サーバからping確認
ファイアウォール設定->受信規則にポート9001を受け入れるように設定
下に続きます。
0523552
2012/02/11(土) 23:53:35.89ID:ec+1ByNd[ウィンドウ]-[設定]-[PHP]-[DEBUG]
でXdebugを選択、ポートを9001に変更、serverもサーバのIPで設定、他はデフォルト
[デバッグの構成]
sever debugger->xdebug
phpserver -> 上で作成した設定を指定 File->デバックするファイルを指定、他はデフォルト
【症状】
デバックを実行すると、デバッグ用のパースペクティブになるのですが、
ブレークポイントで止まった感じも無く、実効結果がすぐに[内部webブラウザー]と[Debug Output]に表示されます。
どうしたら良いでしょうか・・。
0524nobodyさん
2012/02/12(日) 17:42:49.77ID:T+9lcsG5KBに直すには、1024を掛けるのでよろしいでしょうか?
1000を掛けるのでしょうか?
$size=@filesize($upload_name)/1024;
0526nobodyさん
2012/02/12(日) 19:44:33.66ID:???0527nobodyさん
2012/02/12(日) 21:47:54.78ID:???{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;; filesizeで取得したファイルのサイズを
ヾ;;;ハ ノ .::!lリ;;r゙ KBに直すには、1024を掛ける・・・・
`Z;i 〈.,_..,. ノ;;;;;;;;> そんなふうに考えていた時期が
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f 俺にもありました
~''戈ヽ `二´ r'´:::. `!
0528nobodyさん
2012/02/12(日) 22:22:13.85ID:E3xYO+Pkこれってcookieを削除したら再投票可能ですか?
0529nobodyさん
2012/02/12(日) 22:28:44.89ID:???私もそう思う 私は思わない ってやつ
0531nobodyさん
2012/02/12(日) 22:45:37.90ID:E3xYO+Pkありがとうございます!
わざわざ書いて試すのがめんどーだったから尋ねたのですが教えてくれそうにないので試します
0533nobodyさん
2012/02/12(日) 22:54:57.96ID:???0534nobodyさん
2012/02/12(日) 23:05:15.68ID:MdyL4A8RまたsymfonyやCakePHPなどのフレームワークもみんな重いです。
これらの重さはPHPだから仕方がないの問題なのでしょうか?
0535nobodyさん
2012/02/12(日) 23:10:11.35ID:???php6.0とかになって一斉に動かなくなったらワロリンコ
0536nobodyさん
2012/02/13(月) 02:47:58.30ID:???基本的にフレームワークはソースを効率化する為に使う物で
その為に余計な処理も入るから重くなるんだよ。
重さを軽減させるために、キャッシュ機能を使うけどね。
開発効率か速度かどちらか重視して使えば良いんじゃないかな。
0537nobodyさん
2012/02/13(月) 12:31:14.14ID:???重くなるのはPHPのインタープリタの特性と
キャッシュの貧弱さに由来すると思うけど。
PHPでオブジェクト指向のパフォーマンスはほんとにダメ。
0538nobodyさん
2012/02/13(月) 13:57:31.22ID:???優秀なオマエラならモジュールの結合テストもう済ませてるよな
0539nobodyさん
2012/02/13(月) 14:10:49.16ID:???0540nobodyさん
2012/02/13(月) 15:01:11.94ID:???0541nobodyさん
2012/02/13(月) 17:05:49.64ID:???0542nobodyさん
2012/02/13(月) 17:13:35.56ID:???0543nobodyさん
2012/02/13(月) 17:35:35.21ID:???今はどうなんだろうな。
0544nobodyさん
2012/02/13(月) 17:41:53.44ID:???キリストが再臨すれば困ったことになるな。
0545nobodyさん
2012/02/13(月) 18:00:01.82ID:xFiWWsj/バブルの崩壊、日本の失われた20年は平成になったあたりから始まった。
年号が、変われば、きっと日本は明るくなる。
次の年号は上世とか、登安とか、上ってく名前がいい。
■ このスレッドは過去ログ倉庫に格納されています