【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等)・フレームワークは各該当スレへ
0429nobodyさん
2012/02/07(火) 23:53:37.99ID:+mH02aFrデザイナーさんとの仕事分担ってどんな感じなんですか?
現状、デザイナーさんがデザインして、ファイルをもらい、
自分がそこにPHPのコードを埋め込んでいく感じですが、
普通の現場だとどうしてるんですかね。
0430nobodyさん
2012/02/08(水) 01:08:26.67ID:???smartyスレにでもいけよ
0431nobodyさん
2012/02/08(水) 02:44:51.80ID:???うまくダウンロードするウィンドウがでるときと
readfile()で読み込んだファイルの内容が出力されるときがあります
どうしてこのようになるのかわかりません
説明不足だと思いますがエスパーの方いたらお願いします
0433nobodyさん
2012/02/08(水) 03:58:08.72ID:???0435nobodyさん
2012/02/08(水) 10:22:32.40ID:3EF2N74Ksetcookie("TestCookie", "something", time()+3600);
で、クッキーをセットしているのですが、firefoxのアドオン View Cookies1.10.3 で見ると
Expires が Session になっています。ブラウザを閉じると全部消えます。
どんな間違いが考えられますか?
0436435
2012/02/08(水) 10:26:44.75ID:3EF2N74K0437435
2012/02/08(水) 10:30:54.77ID:3EF2N74Kブラウザの設定の問題でした。
0438nobodyさん
2012/02/08(水) 16:44:06.52ID:vfdEsjRWSmartyで外部ファイルを読み込む場合、テンプレートとして読み込む(include等)と
変数割り当て等の解析が必要ない場合でもコンパイルされて、
外部ファイルが(別プログラムによって)変更された場合などには、再コンパイルするコードが必要になってしまいます。
Smarty内でこれを解決する(解析不要でただ読み込む)ことって可能でしょうか。
単純にPHPスクリプトで読み込んで変数に割り当てる方法でも対応できますが、
Smarty内からの関数呼び出しで他のテンプレートと同じように扱えればと思いまして・・
0439nobodyさん
2012/02/08(水) 17:59:23.48ID:2t5iqwD7curl系の関数を使う方法しかないんですかね?
curlだとURL指定で並列実行になりますが、
URLから実行せず、絶対パスで指定できたらと思っています。
curl以外の方法かライブラリがあれば教えてください。
0440439
2012/02/08(水) 18:24:02.84ID:2t5iqwD7簡単なので、こちらの方法で行きます。
0441nobodyさん
2012/02/08(水) 18:54:52.14ID:???平行してWebリソースにアクセスすることとマルチスレッドが同義であるという理解が広まってんのかな
0446nobodyさん
2012/02/08(水) 21:04:25.70ID:???0447nobodyさん
2012/02/08(水) 21:22:54.15ID:???0448nobodyさん
2012/02/08(水) 21:29:29.38ID:???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:???■ このスレッドは過去ログ倉庫に格納されています