1 名前:デフォルトの名無しさん mailto:sage [2016/05/11(水) 21:46:50.27 ID:e/4BOK4y.net] PHPに関する下らない質問用避難スレです。 まず読むこと【PHPマニュアル】 www.php.net/manual/ja/ 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1457792733/ 次スレは>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
175 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:39:32.25 ID:Zyoa4jae.net] まぁ、BladeはSmartyと比べたら随分マシだが。
176 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:42:06.59 ID:WlBhSZNn.net] あ、blade使いませんよw
177 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:42:37.07 ID:Zyoa4jae.net] 大体、Laravelが嫌いなのはBladeとかふざけたもの使わせるからだ。
178 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:43:36.01 ID:Zyoa4jae.net] >>175 そうですか。オレがBlade嫌いなだけなので、別にあなたは使っても構わんのですけどね。
179 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:46:51.38 ID:WlBhSZNn.net] いや、俺が使うかどうかと あんたやシェアは なーんの関係もないでしょw
180 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:50:42.50 ID:Zyoa4jae.net] あんたが使えばシェア増えるじゃん。生き残る可能性でてくるじゃん。夢叶うじゃん。
181 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 19:56:43.19 ID:WlBhSZNn.net] 別に生き残らなくてもいいと思うよ。作者ならみんな使ってくれればって夢があんのかもしれんけどさw 昔つくったsmartyのがあっても もう何がどう変わるわけでもなし、作り直せばいいだけだし そもそも、言語自体もそうでしょ?
182 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 20:05:40.89 ID:Zyoa4jae.net] 一強はダメだとおもうんだよね。 ライバルがいてくれたほうが安心してTwigを使っていける。 Smartyはもう、ライバルとは呼べないくらいに死に体だもの。
183 名前:デフォルトの名無しさん [2016/05/18(水) 20:41:34.34 ID:nJEOHIYf.net] CakePHPさえあれば無敵よ
184 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 20:42:18.02 ID:HqxEqyXt.net] substrのsubは何の略ですか?
185 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 20:43:28.26 ID:Zyoa4jae.net] なんでそんなクソフレームの二大巨頭つかうかな。 頭湧いてるんじゃないの?
186 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 20:48:24.69 ID:Zyoa4jae.net] sub の意味は英語源辞典によると in place of, under, near ってことになってるから、そういう意味じゃね? しらんけど。
187 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:02:07.38 ID:Zyoa4jae.net] ちな、 Unix/Linux コマンドの su は、super user だとか switch user だとか言われてたが 実際にはBSDのなんかのコメントから substitute user の略だったって事がわかったと、 少し前に話題になってたな。 sub(代わりに) stitute (〜の代わりに置く) で、置き換えるって意味だな。
188 名前:デフォルトの名無しさん [2016/05/18(水) 21:04:22.44 ID:nJEOHIYf.net] >>186 そういうことにしておくか
189 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:06:55.25 ID:Zyoa4jae.net] ああ、サルはそうしておいてくれ。
190 名前:デフォルトの名無しさん [2016/05/18(水) 21:08:32.87 ID:nJEOHIYf.net] 何この人キレてんの?
191 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:09:32.53 ID:Zyoa4jae.net] 別にマイク・ベルナルド並にキレてないけど、なんのの?この人
192 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:24:58.63 ID:UK4p5L1M.net] >>173 俺twig使ってるよ 意味もないレスをするよりはマシになるんじゃない?ってアドバイスのつもりだったよ
193 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:33:07.08 ID:Zyoa4jae.net] じゃあ、あんたが説明してやればいいじゃん。 バカを甘やかしても誰も得しない。そのバカですら全く成長しない。 意味が無いと思うならそれはあんたがバカだからで、オレの知ったこっちゃない。 ここは誰でも書き込みができるんだから、 Twigを使う理由を書いて欲しいのなら、あんたが書けばいいだけだ。
194 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:40:31.93 ID:UK4p5L1M.net] Twig様!!!なんて書くほど熱心な信者じゃないので、それまで何も書いてなかったでしょ。 Smartyも使うよ。あなたから見ればゴミクズかもしれないが。 俺はテンプレートエンジンというものを使う、使わないの全体的な流れの方がよほど重要だと思うし、 それに対する答えはもう書いたのでそれ以上は些細な話だと思うんですよ。 そうなった経緯を知っておけばもっと話は分かりやすいだろうけど。
195 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:41:52.48 ID:uXce0dRb.net] 自称上級者様向けのスレがあるからそっちいけな?
196 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:54:25.10 ID:Zyoa4jae.net] 面白い奴だな。Twig様を使った後Smartyを使えるとは。 >それに対する答えはもう書いたので どこに経緯かいてあるのかわからん。レス番で示してくれ。 信者とか言ってるが、一般的に信者というのは盲信する人を指す言葉だ。 オレは便利で合理的な物しか使わない。お前は色々なことを勘違いしているサルだ。
197 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 21:56:57.62 ID:Zyoa4jae.net] >>194 なら、オレは関係ないな。 自称したことなど無いし、普通だ。お前らがレベルが低すぎるだけだ。 敢えてもう一つ言うと、ここは質問者は初心者でも良いが、 回答者やそれに類する参加者が初心者で良いわけではない。 最低限、技術者としての恥を知れ。
198 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 22:27:09.89 ID:RjOHTjfU.net] >>153 それでいいよ。同じことするのに別の書き方覚える必要ない。 >>156 PHPの制御構文もテンプレートエンジンの制御構文も汚さは同じ。
199 名前:デフォルトの名無しさん mailto:sage [2016/05/18(水) 23:48:33.23 ID:FAU18wYy.net] >>153 とりあえずTwig公式のトップページにあるWhy yet another template engineなぞを読んでみては如何か 個人的にはテンプレートの継承/拡張は, かなり実用的である一方でPHP単体での実装は難しいと思う いずれにせよ使ってみないことには分からんと思うので, とりあえずTwig触ってみるといいんじゃないかな
200 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 05:30:51.95 ID:ltjZaTq5.net] 内部的な動作はちゃんと見ないとわからんが ぱっと見Smartyとたいして変わらんな
201 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 05:55:49.61 ID:ZCw2DFbi.net] 設計思想がSmartyみたいなゴミクズと決定的に違う。 そのクソさから、Smarty使ってる既存プロジェクトには絶対に関わりたく無い。 Smarty使うくらいなら>>153 の方がまだマシだ。 何故それに気づかない? 糠味噌でも詰まってるのか?
202 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 06:09:04.05 ID:ZCw2DFbi.net] >>198 サルが英語読めるわけ無いじゃん。 場合によっては、リンク貼ってやらないとどこが公式かもわからねえぞ。
203 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 07:34:56.40 ID:xaLev7gb.net] >>200 テンプレートエンジンは不要 同じことするのに違う書き方覚える必要ない テンプレートエンジンができてPHP単体では難しいなんてありえないでしょ ただ単にHTML吐くだけなのに
204 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 07:36:00.93 ID:xaLev7gb.net] ごめん、>>202 は>>198 宛て
205 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 07:38:30.59 ID:ZCw2DFbi.net] サルはずっとそう思ってクソコード書き続けてればいいよ。 サルに人間様に進化しろなんて言わない。ただ「あ、サルだ!」と言うだけだ。 本当のことだから怒らないでくれよ。 >テンプレートエンジンができてPHP単体では難しいなんてありえないでしょ サル発想だな。サルは出来る出来無いでしか物を考えられない。 使ったら楽になるという発想はない。だから勉強しない。努力しない。進化しない。 サルがサルたる所以だ。
206 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 08:00:08.40 ID:xaLev7gb.net] 試しにsubstrを調べてみたらsliceとかいうのを使うらしい 関数名ぐらい合わせとけ こういうセンスがないツールは使うに値しないんだよ 楽になるどころか面倒になるだけ
207 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 08:16:08.15 ID:SW20ggcC.net] >>202 素のPHPでの代替を綺麗に書いて頂戴な, 良さそうだったら取り入れます あと>>205 をPHPの世界で言うのは中々面白い
208 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 12:45:33.15 ID:qX18+YNU.net] 偉そうなおじさんも今はクライアントからケツ叩かれてヒーヒー言いながら鬱憤溜め込んで夜に再登場しそうだな
209 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 13:23:41.70 ID:4R4B6UDP.net] お子様かと思ってた
210 名前:デフォルトの名無しさん [2016/05/19(木) 13:39:23.81 ID:NN87gZ06.net] なんでキレてんの?
211 名前:デフォルトの名無しさん [2016/05/19(木) 13:42:45.32 ID:NN87gZ06.net] Laravel 最強だな
212 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 13:43:18.81 ID:ltjZaTq5.net] 匿名だ2chだいってここまで性格が歪むのは逆にすげえな 人をサル呼ばわりするような人間にはなりたくないもんだ
213 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 18:44:18.66 ID:ZCw2DFbi.net] >>207 ,208 オレのこと? かわいそうに、妄想でも抱かないと自我が保てなくなるまでになったのか。 だが、あんまり妄想で逃避してると精神くさるぞ。サルで妄想癖じゃ、救いようがない。 現実を見つめたほうがいいぞ。
214 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 18:46:30.21 ID:ZCw2DFbi.net] >>211 匿名だ2chだいってここまで自分の無知無能を正当化するのはすごくもなんともなくまさしくクズだな 勘違いしてもらっては困るが、人様のことをサルなどと呼ぶわけがなかろう。 サルをサルと呼んでいるだけだ。 お前は人間には絶対になれないから、人間になった時の心配などしなくても大丈夫だ。安心しろ。
215 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 18:49:31.80 ID:ZCw2DFbi.net] >>210 Symfonyという名のCacophonyや、CakePHPという名の腹壊す腐ったお菓子じゃなければ 何使おうがお前の自由だ。好きにすればいい。
216 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 18:58:54.32 ID:ykSd9+DU.net] そういう奴は後で個人情報が流出し、どこの誰かがばれて二度と表に出られなくなる
217 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 19:13:04.84 ID:ZCw2DFbi.net] なんとか個人情報が流出しないかと、そればかり期待し始めてるんだろ? お前ら、完全に精神が崩壊し始めてるだろ。病院でお薬貰ってこいよ。 その後で、技術って何かもう一度考えてみろ。 サルがゴミクズを書き続けるのを人間様はプログラムとは呼ばないんだ。
218 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 19:15:52.75 ID:ZCw2DFbi.net] つまり、お前らみたいなサルがPHP使ってるっていうだけで、 まともなPHPを使う人間からすると迷惑極まりないということさ。 使うのは勝手だが、いっぱしの口をきくのはまともなコード書けるようになってからにしろ。
219 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 19:26:48.43 ID:ZCw2DFbi.net] 羽生くんも言ってただろ。 怒りや憎しみからは何も生まれませよって。 お前らは、なんでプログラムなんか書いているのかを思い出せ。 これは大道監督の言葉だ。
220 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 19:32:10.12 ID:PaAk19L+.net] ・やれって言われたから ・給料のため
221 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 19:38:47.18 ID:ZCw2DFbi.net] ほう、まぁ、それもよかろう。お前が自分がプログラミングする理由をそれでいいと思ってるのならな。
222 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 20:06:08.18 ID:4R4B6UDP.net] >>207 ほら、やっぱお子様だったでしょ。 実年齢はともかく、精神的には未成熟極まりない。 ワッチョイつけてNG頻度下げた方がみんなのために良いかと。
223 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 20:10:05.20 ID:ZCw2DFbi.net] ほう、どのへんがお子様フラグか説明してもらおうか。
224 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 20:44:09.29 ID:mwyLssps.net] ちんちんが小さいところ
225 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 20:45:50.08 ID:ltjZaTq5.net] 片山ゆうちゃんみたいなやつなんだろうな
226 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 20:56:38.66 ID:ZCw2DFbi.net] お前ら、自己紹介だけは得意だな。
227 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 21:04:52.51 ID:zMQxfB7p.net] https://www.symfony.fi/entry/install-php-7-on-raspbian-raspberry-pi ここを見てPHP7をインストールしたのですが、libphp7.soがどこにもなく、Apache2でModuleLoadが出来ません findコマンドで探しました
228 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 21:12:31.41 ID:ykSd9+DU.net] ゆうちゃんのいちもつ知ってる奴って検察官?
229 名前:デフォルトの名無しさん [2016/05/19(木) 21:15:27.70 ID:s+nF9z2f.net] >>218 説得力ねえな〜常にファビョってるお前が書いても説得力ねえ
230 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 21:18:09.00 ID:PaAk19L+.net] >>226 さっと見たけどfpmにしてnginxなんかとの併用が前提で書かれてるからじゃない? ソースからインストールするほうにも--with-apxs2が入ってないし ソース持ってきてtar xzfして./configure --help | grep apxsしてみれ
231 名前:デフォルトの名無しさん [2016/05/19(木) 21:29:46.45 ID:s+nF9z2f.net] くぅ〜だらねぇと〜つ〜ぶやいて〜
232 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 21:33:32.55 ID:zMQxfB7p.net] >>229 つまり自分でコンパイルして、soファイルを作ればいいんですか?
233 名前:デフォルトの名無しさん mailto:sage [2016/05/19(木) 21:41:02.09 ID:zMQxfB7p.net] ずっとsoファイルの事ばかり気にしていましたが、windowsでいうショートカット的な物で読み込んでいたみたいです sukohi.blogspot.jp/2016/01/ubuntuphp-56-php-7.html お騒がせしてすみません
234 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 10:24:55.92 ID:az/70L3O.net] phpごときで天下取ったようなレベル低いバカが吠えてるんだな
235 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 12:47:19.05 ID:xjvyZdQR.net] phpすらまともに使えないサルが、なんとかメンツを保とうと必死だな。
236 名前:デフォルトの名無しさん [2016/05/20(金) 13:33:33.77 ID:40TK5Hg8.net] Array ( [19] => 0 [20] => 0 [21] => 60 [22] => 30 [23] => 10 [24] => 10 [25] => 90 ) この配列から連続した3つの値の合計が一番少ないもののキー(つまり[22][23][24])の導き出し方を教えてほしい 一番わかり易い人にコイン5枚さし上げる
237 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 13:45:10.27 ID:2bRCQUHy.net] 金よこせ
238 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 13:45:22.28 ID:86ofSBGI.net] 対象を$targetとして $count = count($target) - 2; $result = array(); for( $i=0; $i<$count; ++$i ) $result[] = $target[$i] + $target[$i+1] + $target[$i+2]; asort($result); で、$resultの最初にくるキー、key($result)の戻り値が例でいう22になる 全部めぐらなきゃ一番合計が少ないものはわからんからこれが最速…なはず
239 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 13:46:49.79 ID:86ofSBGI.net] いや違うか?今の最低合計値と今の最低合計値の開始keyだけ持っておいたほうがいいのか?
240 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:20:25.52 ID:BXlIxe/P.net] >>237 結果を全部持つ必要ないだろww
241 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:24:59.79 ID:86ofSBGI.net] >>239 いやループの中で比較処理を持つよりasort()にまわしたほうが良いんじゃないかと思ってな 持つメモリはこの場合わずかだし書き換えまくるよりはむしろ追加の方が…とか
242 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:43:03.00 ID:h/p1Q8de.net] ソートで昇順にして三つひろう
243 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 14:50:47.68 ID:4c3SZVk+.net] >>238 そう
244 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 19:29:52.75 ID:q6D4bcSJ.net] おまえら、そんなので頭を悩ませるなんて平和でいいな。
245 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 20:03:32.62 ID:A3FdjCyo.net] >>243 目的を果たすコードを書くことは誰でもできるけど、最善かどうかという点で即答できるかい?
246 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 20:08:18.69 ID:q6D4bcSJ.net] 会話がつながってないのはわかるかい?
247 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 20:24:14.49 ID:4c3SZVk+.net] >>243 悩んでるの一人だし、それも含めてくだ質なんだけど
248 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 21:04:12.80 ID:q6D4bcSJ.net] どう見てもミイラ取りがミイラになってワイワイやってるように見える。 だが、そんな事はどうでもよく、書いた通り平和でいいなというだけの感想だ。
249 名前:デフォルトの名無しさん [2016/05/20(金) 22:34:46.57 ID:Kwy8ip0I.net] くだらないジジイの相手する介護スレはここですか
250 名前:デフォルトの名無しさん mailto:sage [2016/05/20(金) 22:47:29.20 ID:DZyHkwIp.net] 子供は立ち入らないで!
251 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 08:25:47.69 ID:fbSE4cqw.net] 俺すごいってやらかすと気分がいいって人いるんだよ。 ネットの初心者用スレとか大好物でしょ。
252 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:47:33.03 ID:98Q7wKMs.net] 何のこと言ってるのやら。 俺は一貫して、お前らがクソと言ってるだけで、俺がすごいなんて一言も言ってない。 アホの自分を取り繕おうとして話をすり替えるなよ、サル。
253 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 12:48:30.31 ID:fbSE4cqw.net] 自分が該当者かもという自覚はあんだw
254 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 13:24:26.55 ID:98Q7wKMs.net] は? この流れで誰の事言ってるか他人だったら分からないほど、お前の頭はサルなの? バナナくうか?
255 名前:デフォルトの名無しさん [2016/05/21(土) 17:29:26.78 ID:UmFJHre5.net] 人によってはくだらないかもしれないけど 意外に難しい?処理について質問があります 最大値 max=5 変数 start を与えた時に start=1 の時は 1→2→3→4→5 start=3 の時は 3→4→5→1→2 と、かならず1巡する処理ってどう書くとスマートになるだろう? int count = 0; for(i = start; i <= max; i++){ print(i) count++ } if(count < max){ for(j = 1; j < start; j++){ print(j) } } これだと同じ処理printを2箇所に書かなければいけなくなっちゃうんだよなあ
256 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 17:40:03.15 ID:DfTLJBWv.net] >>254 SplDoublyLinkedListを継承したクラスでprevとnextをオーバーライドして循環リストを作るのが恰好はいい ただまぁ繰り返し書かないなら素朴に書いた方がいいとは思う
257 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 17:59:02.91 ID:Nd8YCmE2.net] >>254 つ 剰余
258 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:13:33.80 ID:98Q7wKMs.net] cycle(1, 5); echo "<br>"; cycle(3, 5); echo "<br>"; cycle(1, 7); echo "<br>"; cycle(3, 7); echo "<br>"; cycle(5, 10); echo "<br>"; function cycle($idx, $max){ for($i = 0; $i < $max; $i++){ if($idx > $max){ $idx = 1; } echo $idx++ . " "; } } これでいいんじゃねぇの? こんなのになんかクラス使ったり剰余とかつかって可読性下げるの? あんまよく読んでねぇけど、なんかオレ勘違いしてる?
259 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:14:01.43 ID:dQoHFKwA.net] >>235 ideone.com/91O7V9 >>254 リストを作りなおせばいいのでは 最初が12345という順序だと仮定して start=3を(12)(345)と2つに分割し (345)(12)という風に前後を逆にして連結すると(34512)という順番ができる あとはforでもforeachでも好きなようにやる
260 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:16:05.57 ID:eGVVrPoo.net] お前らそれa→b→c→d→e→f→h→a→b→....だったらどうするの
261 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:19:38.81 ID:Nd8YCmE2.net] >>257 剰余で可読性が下がるとかw 相対や循環を扱う上での基本中の基本じゃないか
262 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:24:20.05 ID:98Q7wKMs.net] >>259 バカなの? アルファベットだなんて書いてないし、 そうだったとしたらキャラコードに置き換えればいいだけじゃん。 本物のマヌケか? お前は。
263 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:25:59.49 ID:98Q7wKMs.net] >>260 じゃぁ、お前のそのコード公開してみ。 どっちが分かりやすいかはお前みたいなサルでもわかるだろ。 とかw とか、アホみたいに草生やしてないで自分の間抜けさを良く見つめなおせよ。
264 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:27:48.49 ID:98Q7wKMs.net] >剰余で可読性が下がるとかw >相対や循環を扱う上での基本中の基本じゃないか こういうバカ、本当に多いんだよな。 必要もないのにわざわざおかしなロジック使いたがる。 本人だけはいい気分になってるが、周りは本当に迷惑すんだよ。
265 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:29:45.86 ID:Nd8YCmE2.net] >>263 まずお前が剰余を使って書いてごらん。 無理な時はおれが書いてあげるからそう言って。
266 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:29:54.46 ID:98Q7wKMs.net] >>258 最初が326578359で、maxが78921879582689とかだと、 メモリバカバカ食いまくるんですね。一生やってて下さい。
267 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:31:07.55 ID:98Q7wKMs.net] >>264 >必要もないのにわざわざおかしなロジック使いたがる。 の意味考えろ。本当にサルはどうしようもないな。
268 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:32:38.65 ID:98Q7wKMs.net] >>264 エスケープ猿のつぎは、剰余猿ときたか。そこに配列猿もいて、 PHPは本当に動物園だな。
269 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:35:26.80 ID:98Q7wKMs.net] >無理な時はおれが書いてあげるからそう言って。 おまえが剰余使って可読性高いコード書くのが無理なんだろと。 すなおに晒せよ。評価してやるから。 可読性が高ければ高いって言ってやるから逃げないで見せてみろ。
270 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:36:57.15 ID:Nd8YCmE2.net] >>268 for($i=0; $i<$max; $i++) { $idx=($start-1+$i)%$max + 1; print $idx; } もし数列が 0 始まり(0 1 2 3 4)でいいならこう($max を個数とした場合)。 for($i=0; $i<$max; $i++) { $idx=($start+$i)%$max; print $idx; } 巡回する数列を扱う基本的な式で、定型句みたいなものだから覚えておこう。 じゃんけんの勝敗判定にも使えるよ。
271 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:43:14.64 ID:98Q7wKMs.net] まぁまぁじゃね。 $idx=($start-1+$i)%$max + 1; とか、ゴミみたいになってるが、それほど低くはない。 サルといったのは撤回しておこう。 >巡回する数列を扱う基本的な式で、定型句みたいなものだから覚えておこう。 オレはセオリーでプログラミングするのは嫌いだが、覚えておく。 ここはサルばかりでないことも覚えておこう。
272 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:45:12.09 ID:Nd8YCmE2.net] >>270 w >オレはセオリーでプログラミングするのは嫌いだが、覚えておく。 ちょっと好感度上がったぜw ゴミみたいになっているのは
273 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:45:42.50 ID:Nd8YCmE2.net] ゴミみたいになってるのは 1 始まりのせいな。 0 始まりが基本。
274 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:46:49.38 ID:98Q7wKMs.net] > 0 始まりが基本。 なわけなかろう。プログラムはどこまでいっても基本は仕様だ。 オナニーコードじゃなければな。
275 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:47:36.27 ID:DfTLJBWv.net] 1回だけ使うとか連続添字の場合には無駄に大仰だけど, 一般の連想配列の場合でも使えるのが循環リストだと思うの class DoublyCyclicList extends SplDoublyLinkedList { public function next() { parent::next(); if (!parent::valid()) { $mode = parent::getIteratorMode(); parent::setIteratorMode(parent::IT_MODE_FIFO); parent::rewind(); parent::setIteratorMode($mode); } } public function prev() { parent::prev(); if (!parent::valid()) { $mode = parent::getIteratorMode(); parent::setIteratorMode(parent::IT_MODE_LIFO); parent::rewind(); parent::setIteratorMode($mode); } } }
276 名前:デフォルトの名無しさん [2016/05/21(土) 18:48:22.02 ID:z3sd8Ga8.net] こいつまともにプログラムできない口だけだからスルーしとけ
277 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:49:39.16 ID:Nd8YCmE2.net] >>273 アホなんだなぁ 0 始まりじゃないものに対応するのは基本を押さえた上での応用な。 剰余で巡回させる方法が理解できてるから 1 始まりに調整することができるんだろ。
278 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:49:54.58 ID:98Q7wKMs.net] >ちょっと好感度上がったぜw あがらなくていい。オレはお前らが思っているとおり嫌な奴だ。 オレは、技術者っていうのは技術力がすべてで、それだけが重要だとおもってるだけだ。 技術力ある人はちゃんと認めるし、サルなどと失礼な事は絶対に言わない。
279 名前:サル mailto:sage [2016/05/21(土) 18:52:21.40 ID:rPCavR3P.net] 剰余も理解できない人間っているの?w
280 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:53:36.61 ID:98Q7wKMs.net] >>274 うん、見ただけでめまいする。 >>276 応用だとかは関係ない。全ては後でメンテナンスするやつがどう感じるか。 0始まりだと綺麗なことは認める。基本として良いコードであることも認める。 でも、実際の実装がゴミならダメだ。
281 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:55:23.65 ID:eGVVrPoo.net] >>274 スマート 言ってみりゃ、nextして配列ポインタが終端に達してたら最初に戻る、これだけなんだよな
282 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 18:59:17.37 ID:98Q7wKMs.net] スマートって… こういう奴がいっぱいいるから巷は奇っ怪なコードであふれるんだなぁ。 >>269 と>>274 じゃ、田舎の駅ビルと新宿地下街くらいの違いがある。 まぁ、>>274 も分かってかいてんだろうけど。
283 名前:サル mailto:sage [2016/05/21(土) 19:02:51.86 ID:rPCavR3P.net] サルです よろしくね
284 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 19:14:16.98 ID:hclWowah.net] ID:98Q7wKMsはセルジオ越後かな? 嫌なやつではなさそうなのに わざわざ嫌なやつみたいに振る舞うなよ 普通に話そうぜ
285 名前:サル mailto:sage [2016/05/21(土) 19:15:01.48 ID:rPCavR3P.net] ウキ! /三ヽ (6(・ ・|) | ( ┴) |(゚Д゚) 〜((ノ |) ∪~∪
286 名前:デフォルトの名無しさん mailto:sage [2016/05/21(土) 19:19:35.00 ID:fbSE4cqw.net] 循環の剰余での実装ってやつだな ufcpp.net/study/algorithm/col_circular.html まあ、剰余は鬼門なんだろ
287 名前:デフォルトの名無しさん [2016/05/21(土) 19:20:07.97 ID:z3sd8Ga8.net] その技術力がない 口だけ いや書き込みだけ
288 名前:サル mailto:sage [2016/05/21(土) 19:34:37.79 ID:rPCavR3P.net] 下らない質問。 今年は申年でしたっけ?
289 名前:カエサル mailto:sage [2016/05/21(土) 19:39:37.98 ID:rPCavR3P.net] さいは投げられた
290 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 00:40:07.16 ID:mtGrTkiY.net] >>281 じゃあお前はどういうコードを書くのかな?w もし書けなかったらお前の負けなww
291 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 01:50:39.99 ID:FgH6NpYj.net] >>289 書かれてるよね。 質問者のが直感に従ったものだとすれば、2番目に直感に従ってるものだと思う。 1オリジンの剰余はいつも見た目の不細工さに閉口してしまうが、 書かれているとおりそれもイディオムなわけで、結局のところ直感的なコードだと思う。
292 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 07:36:49.00 ID:+4P72Qz/.net] >>290 シーケンシャルな操作については >>257 (あと >>274 の考え方)はほぼ最適解だと思うよ、特に乗除回路を持たないCPUを意識した場合。 もっとも、クロック数に関しての最適化について言えば判定をループの外に出した >>254 の方が良いけど(もう少し削れるが)、ループ内のコードを重複して書かないといけない問題に折り合いをつける必要がある。 乗除の使用が特に最適になるのは、例えば自分の立ち位置の前後の値を参照するような場合かな。 もちろんこの場合も冒頭で言った書き方の方を取り入れるパフォーマンス的に有利になるだろうが、さすがにコードが汚くなりすぎる。 もし max が 2の累乗になる場合には剰余に代えて論理演算 & を使うことができて、それが間違いなく最適になるだろう。 んまー PHP 使う場合の考慮とは若干外れてるところもあるが、プログラマーとしては知っているべきことだよね。
293 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 10:32:41.17 ID:uZNy0x2J.net] まさかphpのくだ質スレでCPU命令の話を見ることになるとは思わなかったが、どこもおかしくはないな
294 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 12:06:59.06 ID:ai58rDHi.net] ID:98Q7wKMs ← コードを全然かけない、口だけのサルをNGしましょう^^
295 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 13:07:08.87 ID:tpilHeaq.net] サルでもわかるコード書けよ調教師
296 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 15:28:44.29 ID:gnyg6A6P.net] 猫なら誰かがきっと
297 名前:デフォルトの名無しさん mailto:sage [2016/05/22(日) 18:20:43.75 ID:DBA5AlNj.net] ふぅ。今日はやるべきことを全部やったからサルの相手はしなくていいや。 みんな、おつかれ。
298 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 08:43:07.14 ID:kJLqa0kn.net] preg系のエンコードはどこで設定すればいいのでしょうか? mb_regex_encodingでいいのでしょうか
299 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 09:18:19.49 ID:Mg81pT6a.net] >>297 出来ない uオプションでユニコード対応は可能
300 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 09:38:21.56 ID:kJLqa0kn.net] ありがとうございます qiita.com/tabo_purify/items/df8f2aa17094b1a60c82 この記事でpreg_matchを使う前にmb_regex_encodingを設定していますが この設定には意味ないってことですよね?
301 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 10:32:36.30 ID:Mg81pT6a.net] >>299 そのページのHirakuさんのコメント以上に言うことは何もない
302 名前:デフォルトの名無しさん mailto:sage [2016/05/24(火) 10:43:55.69 ID:kJLqa0kn.net] >>300 詳しく書かかれてますね ありがとうございました
303 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 12:07:32.33 ID:1pXCEUqL.net] qiita.com/mr0505iwaki/items/cd3c6514825aa2981f73 これを参考にデータをPOSTする方法をeclipse試しているのですがうまくいきません php自体は動作するのですが、ページ遷移させると actionで指定したphpのソースが表示されるだけになってしまいます 何がいけないのでしょうか?
304 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 12:19:09.43 ID:1pXCEUqL.net] >>302 すみません、自己解決しました eclipseの設定が悪いだけでした
305 名前:デフォルトの名無しさん [2016/05/25(水) 12:24:26.20 ID:pMgMA3BC.net] 12分か、もった方だな。
306 名前:デフォルトの名無しさん [2016/05/25(水) 13:36:55.26 ID:sw+gkSoU.net] また基地外か
307 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 13:38:27.60 ID:PX54IJWY.net] 今後は小島健一県議と呼べ
308 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 14:30:56.54 ID:pZYZ14wu.net] コジーマッケンギー
309 名前:デフォルトの名無しさん mailto:sage [2016/05/25(水) 17:08:14.45 ID:pMgMA3BC.net] 何かと思ったらニールマッケンジーか。
310 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 08:09:50.84 ID:8OoEjLXp.net] シェルスクリプトはコマンド一つ一つが別プロセスで動作するそうです プロセス生成はコストが高いので シェルスクリプトよりphpの方がパフォーマンスが高いのではないでしょうか?
311 名前:デフォルトの名無しさん [2016/05/26(木) 13:58:29.98 ID:QNlyPJU+.net] プロフェッショナルなPHPerになる方法おしえて
312 名前:デフォルトの名無しさん [2016/05/26(木) 14:26:04.92 ID:QNlyPJU+.net] CakePHPを始めるか
313 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:35:35.75 ID:8iPLK0Xd.net] >>309 用途が全然違う PHPは主にブラウザから操作するwebアプリ シェルスクリプトはサーバ内部で動くプログラムでバッチなどで使用
314 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 15:52:30.76 ID:4/e3eYNH.net] >>309 > シェルスクリプトよりphpの方がパフォーマンスが高いのではないでしょうか? 一概にそうとは言えない。 まず、確かにプロセス生成はコストが高いが、一般にそう言われるのはスレッドと対比する 文脈においてであって、シェルスクリプト実行時間と対比させてではない。 シェルスクリプト全体の実行時間が1秒だったとき、その中のプロセス生成コスト(時間)は、 無視できるほど小さい場合が多い。 次に、シェルスクリプトで実行する「コマンド」の全てがプロセスではないということ。 シェルスクリプトには組み込みコマンドが用意されており、そちらが実行されればもちろん プロセス生成コストはかからない。 最後に、パイプを使う場合、シェルスクリプト内では各コマンドが並列実行されるということ。 cmd1 | cmd2 | cmd3 | cmd4 とすると、一度にcmd1〜cmd4が起動され、処理済みの標準出力が次ぎプロセスの標準 入力に渡され、全体としては4つが並列して実行される。
315 名前:ペチパーネ申 mailto:sage [2016/05/26(木) 18:47:43.48 ID:10Y0MP/H.net] >>310 とにかく動けばいい。サイトを作る。セキュアなんて要らない。 人類みな友達。数が大事。スパゲッティーソースがわかるのはオレだけ。つまりブラックボックス化が最大のセキュア。
316 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 18:58:38.80 ID:gtrT/ofd.net] >>312 多分、凄い恐レスだけどこの前の「PHPでバッチ処理書かないのはなぜですか?」の流れだと思うよ。
317 名前:デフォルトの名無しさん mailto:sage [2016/05/26(木) 19:44:15.56 ID:Zeax/D8v.net] 恐レス……
318 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 05:31:53.35 ID:LOelchbu.net] 実際シェルスクリプトは生産性が低いですからね 悪い意味での過去の遺産がそのまま残ってる 高度なことをやるには pythonやrubyが使われがちですが、もっとPHPが使われてもいいはずです
319 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 07:27:35.92 ID:uGMw4K7m.net] サービスに関するバッチ処理ならPHPで書くけどな。例えば閲覧ランキングデータの作成とか。普通にフレームワークもバッチ書けるようになってるし。
320 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 08:59:21.15 ID:LOelchbu.net] linuxで動くコマンドをrubyやpythonでなくphpで書いて githubで発表したら ちょっと馬鹿にされるような偏見がありますよね? この偏見は全くナンセンスだと思います
321 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 09:48:26.40 ID:7Sj/lkjM.net] ちょうど先週、ターミナルで動くスクリプト書こうとして、 PHPじゃあまりにダサいので、勉強して Python で書きました。 人の目ばかり気にして生きる私をお許しください。
322 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 10:16:49.67 ID:vmw4t1oa.net] Pythonは、PHPでやるような「HTMLへの埋め込み」ができないじゃない。 つまり用途が違う。
323 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 10:18:03.49 ID:LOelchbu.net] そうです しかもphpからpythonにしたことによるメリットはほとんどなかったはずです 無駄な虚栄心により生産性が悪化するのです
324 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 10:18:15.60 ID:go2H7GGI.net] >>318 それでいい シェルスクリプトオンリーなのは ファイル消したり、ログファイル操作したり 運用系の処理に限定すべき >>319 スクリプト言語どれ使うかなんてどうでもいいし 人にどう思われるかもどうでもいい PHPでもちゃんと書けばちゃんと評価されることもある
325 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 10:27:32.50 ID:LOelchbu.net] そもそも、同じことをするのに phpより短く書けるスクリプト言語がありますか? あったら乗り換えてもいいですが。 大抵phpの方が短く書けるはずです
326 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 10:29:48.51 ID:Tw3bGPwF.net] エラー処理やロギングを適切にしっかりガチガチにやってるかどうかが最重要 なんかあったら無言で落ちるバッチほどクソなものはない
327 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 10:35:24.68 ID:LOelchbu.net] phpには標準でsyslog関数があります 「大抵のことが標準でできる」 これがphpの最大の強みです
328 名前:デフォルトの名無しさん [2016/05/27(金) 11:10:28.92 ID:h8G6TOQH.net] PHPで仕事ができるレヴェルにまで高まりたい どのように勉強しどのように熟練度を積めばいいか 詳しく教えてたもれ
329 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 11:42:02.24 ID:9EtuyVBz.net] 練度とかそんな求道的な言語だったっけ
330 名前:デフォルトの名無しさん [2016/05/27(金) 11:48:53.10 ID:h8G6TOQH.net] >>328 そういうのはいいから 教えてたもれ
331 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 11:55:49.79 ID:LOelchbu.net] 仕事にするならば、 unix系OSやプログラミングの包括的な知識が必要です phpで何かを作ることを通してどちらも学ぶことができます phpを学ぶのではなく、phpで学ぶという姿勢が大切でしょうね
332 名前:デフォルトの名無しさん [2016/05/27(金) 13:14:26.53 ID:IKjJ7pmy.net] >>330 さすがです 更に教えてくだされ
333 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 13:34:33.33 ID:LOelchbu.net] 特に教えるようなことはありません 勉強のための勉強はモチベーションが続きませんので こういうことしたいけどどうしたらいいかな? という興味を繋げていくことが重要ではないでしょうか そういうやりたいことや作りたいもののイメージを広げて下さい phpはあくまでそれを実現するための手段です
334 名前:ペチパーネ申 mailto:sage [2016/05/27(金) 17:35:20.12 ID:zQx7HNv7.net] そういうことだな。とにかくサイトを作るべき。セキュアなんかどうでもいい。 知識だけ増えてコードもかけない。サイトも作れないヤツは役立たずだから。
335 名前:デフォルトの名無しさん [2016/05/27(金) 18:38:46.96 ID:bzamVpC0.net] そこでWordPressですね!
336 名前:ペチパーネ申 mailto:sage [2016/05/27(金) 19:55:17.82 ID:zQx7HNv7.net] ムーバブルタイプ()になるなんてなぁ。やっぱりPHP最強ですな!
337 名前:デフォルトの名無しさん mailto:sage [2016/05/27(金) 21:23:47.23 ID:XOMWEtHe.net] バカが居着いたな。
338 名前:デフォルトの名無しさん [2016/05/27(金) 22:49:32.10 ID:bzamVpC0.net] ID:XOMWEtHe を超える馬鹿はいまだに現れないけどなw
339 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 07:56:40.52 ID:dedHu0lv.net] シェルスクリプトで構築したものをPHPで書き直していますが やはりオブジェクト指向で書けるのが素晴らしいですね ウェブという過酷な現場で鍛え上げられた堅牢性 ライブラリのincludeに気を使う必要のない手軽さ 何で使わないの?あほなの?
340 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 08:19:51.18 ID:yOItZUQa.net] >>338 PHP 覚えて楽しくて仕方ない時期なんだね 結構結構
341 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 08:26:58.15 ID:dedHu0lv.net] rubyやpythonは生言語で書かれているライブラリの内部でエラーが出ることが少なくありません これには非常に意気を奪われますが PHPの場合、まずありません これがどれだけ生産的なことか
342 名前:デフォルトの名無しさん [2016/05/28(土) 08:42:46.05 ID:fjaQwAHl.net] まずはWordPressですね
343 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 08:56:25.74 ID:xHO8PG3F.net] 細かいこと気にせず書く 硬く書く どっちも書きやすいのは良いことだ
344 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 10:22:43.51 ID:p586PW/3.net] PDOの接続処理を try/catch 文で囲んだ場合、 ERRMODE_WARNING と ERRMODE_EXCEPTION に違いはあるのでしょうか? ERRMODE_WARNING についても、「PDOException をスローする」とあります。 ERRMODE_EXCEPTION について、「ERRMODE_WARNING と同様にデバッグ時に有用で、 エラーが発生した時点でスクリプトの実行を停止させる」とあります。 両者の違いと効果がいまいちわかりません。 本番環境では、ERRMODE_EXCEPTIONを使い、 開発環境では、ERRMODE_WARNING を使うということなのでしょうか? よろしくお願いします。 php.net/manual/ja/pdo.error-handling.php
345 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 14:12:08.49 ID:k1q+IunE.net] >>343 ERRMODE_WARNINGはコンストラクタでは例外を投げるがそれ以外では投げない ERRMODE_EXCEPTIONはエラー発生時には常に例外を投げる と読めるが?
346 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 14:44:55.97 ID:9P0W7UNJ.net] >>344 ありがとう。 ERRMODE_WARNINGは、自動的にエラーを出力するけど、 ERRMODE_EXCEPTIONは、$e->getMessage();しないとエラー出力しない。 ただし、ERRMODE_WARNINGでもコンストラクタ、つまり、new PDO($dsn... で接続に失敗した場合、例外が投げられるからcatchしろということですよね。 本番環境でも、エラーログにエラーを吐いて欲しい場合には、 ERRMODE_WARNINGがいいのかな。
347 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 14:46:33.86 ID:fPcEGIkd.net] > ERRMODE_WARNING についても、「PDOException をスローする」 どこに書いてあるの?
348 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 15:02:57.30 ID:9P0W7UNJ.net] >>346 php.net/manual/ja/pdo.error-handling.php この例2のコメント部分です。 /* ERRMODE を WARNING にした場合でも、コンストラクタを try/catch で囲むのは有効です。 接続に失敗した場合、ERRMODE が何であろうが PDO::__construct が PDOException をスローするからです。 */
349 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 17:07:34.65 ID:wZkOO3aE.net] >>338 phpってオブジェクト指向なのですか? クラスも使えますか?
350 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 17:25:38.54 ID:dedHu0lv.net] >>348 もちろん使えますよ
351 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 17:32:43.71 ID:wZkOO3aE.net] >>349 知らなかった。 ありがとうございました。
352 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 17:49:06.65 ID:k1q+IunE.net] >>345 まともなソフト作るならちゃんと例外処理しろよ Warning発生時でも処理が継続するってことは, Warningが起こるような処理については内容は一切保証しませんと言ってるのと同じ
353 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 20:28:31.30 ID:6ztlzLBo.net] >>351 なるほど。WARNINGは、エラーでも実行継続しちゃうんだった。 本番環境も開発環境も、ERRMODE_EXCEPTIONで例外処理するのが正解なんだね。 しかしもう修正不能だ・・・
354 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 20:51:24.53 ID:6ztlzLBo.net] というかPHPって例外を投げないエラー処理が多いんだった。 throw new ErrorException で自分で例外投げないとダメなんだね。 php.net/manual/ja/class.errorexception.php
355 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 21:24:07.26 ID:H5MBEWMU.net] 途中で例外処理が追加されたので、互換性のためにって感じだっけ? フラグで例外を投げるかどうか決めれるやつもあったと思うけど、 これらは比較的新しい関数ってことなのかしら
356 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 22:05:45.93 ID:dedHu0lv.net] fgetsのlengthが長さ-1なのは何故でしょうか?
357 名前:デフォルトの名無しさん mailto:sage [2016/05/28(土) 23:16:23.24 ID:O5lAFAJB.net] throwが便利だからだろうね 大元の呼び出し元まで返るからね フラグだと全部リターンしないと呼び出し元まで返せないし フラグじゃないものをリターンしたいのが普通なのでフラグリターンはきつい
358 名前:デフォルトの名無しさん [2016/05/28(土) 23:36:37.59 ID:0iKr5py8.net] どうしてペチパーのママはドブスばかりなのか
359 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 03:17:47.75 ID:YpkEX6Ke.net] 例外絡みで1つ質問。 catchでのException $eが不要なとき、どう書けばいいの?
360 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 03:27:36.66 ID:v+3vzfaj.net] 不要ってなんだ catch対象を書かなきゃ何をcatchしていいかわかんないじゃん
361 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 04:23:12.88 ID:YpkEX6Ke.net] ああすまん、言い方が悪かった。 catchのブロック内でその$eを使わないとき、だな。 そのまま放置でも良さそうだけど、できれば使ってないことを明示したい。 例えばブロック開始直後にunset($e)とか、なんか良い方法ないかな。 せっかく補足したんだからログに残すなり何なりしたほうが良いのは分かってるけども。
362 名前:デフォルトの名無しさん [2016/05/29(日) 05:38:44.51 ID:DYRgDF3k.net] 関係ないかもしれんけど、キャッチアンドリリースって聞いたことあるよ。
363 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 05:43:03.00 ID:YpkEX6Ke.net] >>361 それは、catchするけど何もしない(PHPならそもそもcatchしない?)、 あるいは、そのまま上に投げることを指すんじゃない?
364 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 05:47:10.95 ID:v+3vzfaj.net] 俺はなんかキャッチアンドゴーとかそんな感じのを聞いたことある気がする unset($e)か、コメント書くか、なんか使わないよ的な変数名をあてるか、くらいしかないんじゃないかなあ
365 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 06:00:33.97 ID:lJ1NKQbg.net] 使わないことを明示することに如何な意味があるのか
366 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 07:31:25.42 ID:oxnJSJpj.net] >使わないことを明示することに如何な意味があるのか サルなりに、安心できる
367 名前:デフォルトの名無しさん [2016/05/29(日) 07:51:39.25 ID:Ij8AE099.net] 他を下に見てサルと蔑むことで自我を保てる基地外が来ましたね
368 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 08:06:51.99 ID:YpkEX6Ke.net] >>364 直接的な理由としては、IDEが未使用変数に対して注意を促してくるから、かな。 心情的にも、宣言しておいて宙ぶらりんというのはちょっと収まりが悪い。 言語によっては、型名を書くだけ(要は$eの部分がない)とか出来るじゃん? PHPにもちゃんとしたやり方があるなら、それを知りたかった。
369 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 08:08:29.92 ID:YpkEX6Ke.net] >>363 変数名で使わないことを示すというのは、いいな。
370 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 09:13:09.97 ID:WmC7AS7k.net] 初心者のうちは例外の意味がわからないだろうから無理もないんだけどさ 処理の前に全部確認してreturnするかthrowする習慣つけなよ 例外発生しても無視とか悪習にしかならない
371 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 09:17:39.43 ID:VGuceG8q.net] 俺は例外処理の意味が分からなくて、全部 try{ Hoge(); }(FooExなんちゃら e){ System.out.println(e); } してた あと独自例外クラスの意味が分からなくて、例外クラスに例外発生条件を書くのかと思っていた
372 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 11:14:52.46 ID:YosV+ioq.net] >>360 >>367 その場合はtry〜catch節は書かない 上位の呼び出し元でcatchする
373 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 14:48:05.67 ID:Pqoknlps.net] >>371 その関数内で例外を補足したい場合はどうするん? あとはその上位でも$eを参照しないとか、あるいはそもそも最上位の場合とか。
374 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 15:48:46.36 ID:Yjs1g498.net] データベースに配列[1, 2, 3]突っ込む場合 1.jsonに変換して突っ込む 2.explodeなりで「1,2,3」と突っ込む 正解はどっち?
375 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 16:06:57.93 ID:GBRDVTrG.net] 何に使うのかが分からないけど、タグ付けが目的なら 適当な区切り文字で繋いでそのまま格納が使いやすそうだな
376 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 17:04:53.25 ID:lJ1NKQbg.net] >>372 例外をキャッチするけれどもその中身を見ないというのはあまりよい習慣とは思えないけど, IDEの警告を消したいならまぁunsetだろうなー >>373 用途にもよるが一般にはどっちも不正解 とりあえず「SQL JayWalking」でググってみれば
377 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 17:06:33.06 ID:oxnJSJpj.net] >>373 >データベースに配列[1, 2, 3]突っ込む場合 >2.explodeなりで「1,2,3」と突っ込む おまえのPHPは配列をexplodeできんのか。すげぇな。
378 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 17:55:56.21 ID:Pqoknlps.net] >>375 throwが、自分で投げたやつ1つだけとかだったり 型名から例外の内容が明らかだったりすると、$e->getMessage()とかする必要なさそう
379 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 18:08:58.73 ID:v+3vzfaj.net] ごめんあれタッチアンドゴーだった
380 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 20:52:18.18 ID:4cJk/zi6.net] >>373 そういうデータの格納の仕方をしても問題の無いカラムだという前提でだけど、 スペース区切りで join した上でさらに先頭と末尾にスペースを付与するってのはどうかな。 その例だと ' 1 2 3 ' って感じ。 まず元の配列に戻すには、trim して explode すればいい。 先頭と末尾に付与する文字をスペースにしてるのはこの trim をしやすいようにするため。 で、後述の事情により値の区切り文字はここで付与する文字に合わせる必要があるので、区切りもカンマではなくスペース。 んじゃそもそも先頭と末尾になんでそんな余計な文字を付与するのかというと、配列の要素の値を LIKE検索できるように。 配列内に 2 という値を持っている行で絞り込むには、 column LIKE '% 2 %' のように、絞り込みたい値の先頭と末尾に区切り文字を付けておく。 単に column LIKE '%2%' じゃいけない理由は少し考えれば分かると思う。 んでこの都合により、カラム内の最初の値の前には区切り文字がある必要があるし、最後の値の後にも区切り文字がある必要がある。 だからカラム値そのものの先頭と末尾に区切り文字を付けておく必要がある。
381 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:08:13.99 ID:jwA+uuOB.net] >>352 エラー処理してなかったってことかな
382 名前:デフォルトの名無しさん mailto:sage [2016/05/29(日) 21:12:46.02 ID:f+JrLvVy.net] wgetでしていたリモートファイル取得を phpのcurlに置き換えたら処理時間が二倍くらいになりました curlは遅いのでしょうか?
383 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:17:44.24 ID:EYocVjlD.net] 具体的にはwgetは0.12秒、curlは0.41秒といったところです
384 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 00:38:44.97 ID:cVhChvSa.net] >>379 こういうクソみたいな長文を自信満々に書いちゃうからPHPerはクソだって言われるんだよな。
385 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 01:10:51.70 ID:MSwmOpiD.net] >>383 何をクソか言えればお前はクソじゃなくなるんだけどな
386 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 01:38:07.20 ID:cVhChvSa.net] 誰がどんな書き込みをしたか把握できないバカは何を見てもクソだと思う。 つまり、お前がオレをクソだと思うのはお前が低能でクソなことが原因だから、そんなの知った事か。 レスを全部読み返せ、マヌケ。
387 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 01:46:43.83 ID:EfYZ+SoU.net] >>379 検索のことを考えねばならない時点で前提が崩壊している
388 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 02:07:44.13 ID:EYocVjlD.net] file_get_contentsのタイムアウトのことを調べると タイムアウトは出来ないとか、設定した値の二倍かかるとか いろいろな説が出てきますが 何が正しいんですか?
389 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 02:11:49.06 ID:MSwmOpiD.net] >>385 よくわからんが、>>373 に対してレス付けてるのから判断するとお前は >>375 だと言ってるのかね? でもそれじゃ >>379 の何がクソだと言ってるのかは分からんから、お前は >>376 なのかね? んまあどれが誰かなんて興味は無いのでどうでもいいが、>>379 の論点のクソさを具体的に示せてないんだからお前もクソだろう。 >>386 データ規模によるっしょ。 他のインデックスが効くキーで充分に絞り込めてるレコードをさらに絞るとか。 あんまりうまい例えはパッと出てこないけど、生徒マスタなんかクラスで40名程に絞り込んだ中から、好きな教科カラムに「数学」を含む生徒だけを取り出すとか。
390 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 02:51:30.51 ID:+KPM1br2.net] 大人しく正規化しろ。すべて解決だ
391 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 03:29:38.26 ID:EfYZ+SoU.net] >>388 正規化しなくてもいい理由を考えるんじゃなくて, 正規化された状態だと問題がある場合に限って非正規化な構造を採用すべき
392 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 07:03:49.14 ID:cVhChvSa.net] >>388 サルが必至にクソな論理を構築しようとした結果の超クソレス。 サルだからこういうレスをしても恥ずかしくないらしい。サル、最強だ。
393 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 07:43:17.72 ID:cVhChvSa.net] 多分、>>379 や >>388 みたいな奴って、 qiita.com/iwata@github/items/f33490d34dd1400b166e これとか読んでも > ユーザーが “banana” のような無効な入力を行ってしまうことを、どうやったら防げるでしょうか。 って文章があるだけで頭の中がバナナで一杯になっちゃって他の文章が全く頭に入ってこなくなるんだよ。 技術系の発信する時は「バナナ」は禁句だってあれほど口をすっぱくして言ってるのに、未だに理解されないよな。
394 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 07:51:23.15 ID:cVhChvSa.net] >んまあどれが誰かなんて興味は無いのでどうでもいいが、 誰がどれか、なんて話してねぇよサル。 誰がどんな事を既に言ったのかって話をしてるんだ。おまえ脳みそにシワあるのか?
395 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 07:54:27.98 ID:v4ZBbWmE.net] >>392 の > ユーザーが “banana” のような無効な入力を行ってしまうことを、どうやったら防げるでしょうか。 これ、qiita記事の元っぽい以下のURLだと濁点の分離や記号の全角化は起きてないようにみえる https://github.com/suzuki-shin/sql_anti_pattern/blob/master/chapter1/chapter1 同qiita記事書いた人の別の記事でも濁点の分離や記号の全角化がされた文章がいくつかある こういうのってどういう局面で起きるものなの?
396 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 08:09:01.66 ID:MSwmOpiD.net] >>390 正規化の是非は >>373 が判断することで、今は正規化しない場合のデータ表現についての話でしょ。 だったら JSON でもカンマ区切りでもその他の表現でも、どうするとどう活用できるかについてが議題じゃないのかな。
397 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 08:27:40.56 ID:EfYZ+SoU.net] >>395 > 今は正規化しない場合のデータ表現についての話でしょ >>373 を読む限りそもそも正規化を知らないものと理解するが。
398 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 08:30:06.63 ID:EfYZ+SoU.net] >>394 UnicodeのNFDとNFCで調べてみるといい OS X上でマルチバイトファイル名入りのGitリポジトリとか扱うときに問題になる
399 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 08:44:38.54 ID:MSwmOpiD.net] >>396 あー、言われてみればそんな気もしてきた。 でもデータベースというのは実は KVS とかだったりして。
400 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 09:55:15.32 ID:v4ZBbWmE.net] >>397 Macなのか!あとで調べてみるサンキュー
401 名前:デフォルトの名無しさん [2016/05/30(月) 10:05:11.31 ID:b2mZbZ2D.net] サル・猿をNGワードでスッキリ
402 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 10:32:30.47 ID:RFK4Vliv.net] >>397 OS XのiTunesの音楽ファイルをtar zipで固めてlinuxに持ってったときハマったなあ ファイル名が曲名だったから日本語ばかりで、濁点が全部別文字になったw 当時NFC,NFD処理できるうまいライブラリがPerlしかみつからなくて Perlのスクリプト書いて修正したっけな
403 名前:デフォルトの名無しさん [2016/05/30(月) 11:27:17.60 ID:b2mZbZ2D.net] PHPをモノにするにはWordPressでサイト構築が最も効果的であります
404 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:21:09.96 ID:EYocVjlD.net] $http_response_headerという変数がありますが 特殊な変数なのに何故「$_大文字」のような形ではないのでしょうか? 普通に付けそうな名前ですし、まずいと思います
405 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:40:19.92 ID:y++iLJ96.net] >>403 細かいことを気にしたら一流のペチパーになれないぞ
406 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 12:55:38.98 ID:cGJHwTA3.net] >>400 一生現実から目を背けてろ、このエテ吉が。
407 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 16:07:54.41 ID:8XzSUPs+.net] phpのことで悩むのやめた 女の子誘って温泉いってくるわ
408 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 16:16:46.03 ID:bSPgiDOZ.net] >>403 特殊ってわけでもないんだよな$http_response_headerはローカルなんだ
409 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 16:39:01.00 ID:EYocVjlD.net] $_系はグローバルなので小文字ににしたということですね それならまあ納得です ありがとうございました
410 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 19:49:38.97 ID:LmMFghTu.net] >>355 内部の処理で文字列の最後に1バイト文のNULL文字'¥0'が自動で付加されるから
411 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 20:02:26.02 ID:1Y2aZH/o.net] >>409 ほんとに?
412 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 20:03:59.91 ID:EYocVjlD.net] >>409 わっ、そうなんですね ちょうどそれが原因のバグに当たっていたところです fgetsはバイナリで読むと思いこんでいました ありがとうございます
413 名前:デフォルトの名無しさん mailto:sage [2016/05/30(月) 23:40:21.19 ID:EfYZ+SoU.net] >>409 それはC/C++に於ける実装だ PHPではヌル文字は文字列終端を意味しない(zend_stringの実装を見るとよい) 実際fgetsはバイナリセーフでヌル文字があっても改行文字かEOFにあたるまで読み続ける fgetsの引数の$lengthがそのような実装であるのは, C/C++に於けるfgetsの引数lengthとの互換性を持たせるためだろう ただまぁfgetsのプロトタイプ自体がC/C++とPHPでは全く異なるからそこだけ合わせてもアレだけども
414 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 01:57:54.79 ID:+9fDSi7f.net] あー、functionやreturn省略できねーかなー
415 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 04:34:17.37 ID:4Jh5cWvX.net] functionはともかくreturn省略したらvoidとの区別がつかんやろ
416 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 05:40:01.58 ID:X6HwP8rQ.net] 俺はswitchのbreakを省略したい。 switchはbreakで区切るのではなく、continueで連結するようにすべきだったはずだ。
417 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 06:23:56.21 ID:37ByNeIc.net] >>415 複数の値で同じ処理をする時に case ばかりを並べる場合はデフォルトでフォールスルーになってる方が便利だけどな。 でもそれ以外でフォールスルーを活用できるパターンも少ないように思うから、個人的にはどっちでもいいと言えばどっちでもいい。 ただ既存言語に合わせておいた方がトラブルが少ないんじゃないかと思う。
418 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 11:42:05.04 ID:BNvwfi7N.net] やはり、PHPをマスターするにはWordPressでのWebサイト構築が最も効果的なのでしょうか?
419 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 12:09:34.37 ID:pF41PCQ4.net] 一番遠回りの道を何故選ぶ? ヒマなのか?
420 名前:デフォルトの名無しさん [2016/05/31(火) 13:10:11.01 ID:BNvwfi7N.net] >>418 代案を出さなきゃサル呼ばわりされちゃうよ?
421 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 13:29:03.85 ID:rEPhaK+h.net] 自分でブログなり何なりを作って運用する。 cmsははノンプログラマの逃げ技だと思っている。
422 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 15:21:14.32 ID:WEIThh9S.net] mkdir('/tmp/hoge/hoge', '0777', true); としたところ、/tmp/hogeまでは作成されましたが その下が権限エラーで作成できませんでした 再帰的に作成するというのだから、 それまでのパーミッション設定までしてくれていいんじゃないかと思うんですが 何故こんな挙動なんですか? 自分でループなどで作らないといけないということでしょうか?
423 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 15:25:18.97 ID:CpuDRB98.net] >>421 それってもしかして、 /tmp の下に hoge がない状態で、 /tmp/hoge/hoge を作ろうとしたの?
424 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 15:26:51.23 ID:WEIThh9S.net] >>422 そうですよ 再帰的に作成っていうのはそういうことでは?
425 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 15:27:11.59 ID:3Enb+VVF.net] mkdir('/tmp/hoge/hoge', 0777, true);
426 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 15:28:11.55 ID:LdI3VN67.net] >>421 '0777' => 0777
427 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 15:41:01.77 ID:WEIThh9S.net] >>424-425 パーミッションの書き方が間違ってたのですね ありがとうございました
428 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 17:01:
] [ここ壊れてます]
429 名前:22.48 ID:pF41PCQ4.net mailto: 10年前くらいにパーミッションをストリングリテラルで書いたのを思い出した。 [] [ここ壊れてます]
430 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 17:27:16.13 ID:xVlROlYS.net] 今回のは、'0777' をphpが10進数の777にしてしまったケースだね 0777 は8進数なので正しく設定できる
431 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 18:55:58.27 ID:X6HwP8rQ.net] >>420 wordpressはCMSですらない。あれはただのブログシステム。 ブログシステムとしては素晴らしい出来だが、 あれでコーポレートサイトとか作る奴は後先考えない、はた迷惑なマヌケ。
432 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 18:59:28.64 ID:MlesSNZX.net] >>429 根拠を具体的に教えてくれ 煽りとかじゃなくてWordPress扱ったことないんだ
433 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 19:10:23.60 ID:WPXjVdwG.net] 中小零細もそこそこ大きい会社でもCMSシステムを実装して納品してもちゃんと使ってくれないんだけど。 WPも結局、記事投稿してないところが大半。しても業務日報。宝の持ち腐れ。意味ねーよ。
434 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 19:21:34.07 ID:37ByNeIc.net] >>431 CMS使ってくれないよねぇ。 先方の担当者だけで回せるようにと要求に沿ったものを作ってあるのに、結局こっちに運用を回してくるというw
435 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:06:34.71 ID:X6HwP8rQ.net] >>430 ん? まず、コードがクソ。 全く抽象化されておらず、このご時世にフラットなコードを細切れにしてるだけのクソ設計。見通し最悪。 DBモデルデザイン、超クソ。 カスタムフィールドを実現するためにとったDB設計がクソの骨頂。 そのせいで、DBアクセスが凄まじく重い。とってきたデータをPHPでforeachループしまくるので遅さははんぱない。 RDB使ってる意味が全く無いクソ設計。 そんなんだから、普通ならコンマゼロ数秒で返せるレスポンスを数秒単位かけて返す。 なんかくるくる回りまくる。 アクションフックとか超クソ。 そんなん、Wordpressでしか使わない。PHPの知識は全く役に立たない。 あれはPHPじゃなくてWordpressという言語。 PHP覚えれば大抵のことは出来るはずなのに、一度Wordpressを使おうと思ったらまた0からやり直し。本当にクソ。 全ファイルドキュメントルート下。本当に頭おかしい。 リンクに片っ端からwp-なんたらいうディレクトリ名があって、 「わたしWordpressちゃんつかってまー」と公共の場で宣言しまくり。頭おかしい。 次から次へと脆弱性発見されるから更新推奨されまくり。 安い金で一度導入したら、あとは死ぬまでアップデートするかしないか地獄。 アップデートしなければカモ、したら動かなくなるかもしれん危険と隣合わせ。使うやつマジマゾ。 こんなんでいい? まだ言う?
436 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:14:58.84 ID:MlesSNZX.net] >>433 軽い気持ちで聞いた俺が悪かった 謝る
437 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:18:03.23 ID:N6PjvSqh.net] じゃあ、これなら良いと言うものを作って見せて
438 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:18:34.68 ID:X6HwP8rQ.net] >>434 「Wordpressを使うものはさらにおぞましきものを見るだろう」
439 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:20:17.34 ID:X6HwP8rQ.net] >>435 お前が普段目にして「これはいい」と思った物は、もしかしたらオレが作ったも物だ。 お前が「これはいい」と思った物がないなら、それは今オレが作っていてまだ世に出ていないからだ。
440 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:27:07.76 ID:N6PjvSqh.net] 期待しているよw
441 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:29:00.66 ID:WEIThh9S.net] そうか パーミッションって八進数で書いてるだけで、本質は整数なんですね だから0777は10進数で511と書いているのと同じ それが分かっていたら文字列にすることもなかったですね
442 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:31:28.66 ID:X6HwP8rQ.net] >>438 うむ。期待してくれたまえ。以下に自分がマヌケだったかを思い知らせてくれよう。
443 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 20:32:59.53 ID:X6HwP8rQ.net] >>439 10年前のオレ、ようこそ。お前は成長する。
444 名前:デフォルトの名無しさん [2016/05/31(火) 21:37:52.60 ID:XoeoyrEz.net] concrete5ってどうですか?
445 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 22:32:35.67 ID:ghr06yjT.net] >>414 無名関数のときだけは、 Perlのreturn仕様(省略時は最後の式が返るとかそんなん)が羨ましく思える
446 名前:デフォルトの名無しさん mailto:sage [2016/05/31(火) 22:35:23.07 ID:MhuNyaGk.net] パナマ文書流出したのもWordPressだよね ウェブに重要文書置くなというのはわかるが セキュリティホール対策頻繁にやらないといかんのはきついね
447 名前:デフォルトの名無しさん [2016/06/01(水) 10:26:11.68 ID:fICAMZhq.net] PHPの基礎は学んだ まずは何を作ってみるのがいい?
448 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 14:40:16.20 ID:VVSddd00.net] 話し相手になってくれるサイトを作る
449 名前:デフォルトの名無しさん [2016/06/01(水) 15:31:09.74 ID:wQ3dwFqG.net] >>446 例えば?
450 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 15:36:51.26 ID:VVSddd00.net] あたかも誰かがチャットの相手してくれているかのように
451 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 15:43:44.93 ID:jVC0+jUB.net] 作りたいものを作ればいいのに。 作りたいものがないなら作らなければいいのに。
452 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 15:53:04.28 ID:44n+CxQk.net] >>448 そんなサイトがあたかもしれない。
453 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 17:01:57.45 ID:O+gTBZeC.net] チャットルーレット
454 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 18:58:44.73 ID:o4JIGiaf.net] 文字列をシングルクォートで囲んだ場合エスケープしないと理解していますが '\' がエラーになりました echo '\\' だと\が表示されます シングルクォートでも\だけはエスケープされるのでしょうか?
455 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 19:09:39.19 ID:ldMD50kq.net] シングルクオートだろうが、ダブルクオートだろうがエスケープされる。 シングルクオートは変数展開がされない。 つまり、お前の勘違い。
456 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 19:24:10.78 ID:o4JIGiaf.net] echo 'abc\nabc'; と echo "abc\nabc"; で表示が変わりますよね 変数展開だけではないように見えますが
457 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 19:54:00.25 ID:O+gTBZeC.net] マニュアル見ろよ
458 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 20:15:21.36 ID:rdHAS6On.net] >>454 よく読め php.net/manual/ja/language.types.string.php#language.types.string.syntax.single
459 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 20:24:48.47 ID:o4JIGiaf.net] シングルクォートで囲んだ場合でも シングルクォートとバックスラッシュはエスケープする必要があるのですね シングルクォートをエスケープする必要があるので、 バックスラッシュもエスケープしなければならないということですね ありがとうございました
460 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 20:29:50.97 ID:RA3wR2In.net] シングルクォートの中のシングルクォートのエスケープは SQLと同じようにダブルシングルクォートだった方がよかったな、なんてちょっと思うな。
461 名前:デフォルトの名無しさん mailto:sage [2016/06/01(水) 21:10:43.25 ID:o4JIGiaf.net] 後ろに\と'以外が来た時には エスケープシーケンスとしての指定がキャンセルされるのか・・ と思いましたが もともとエスケープシーケンスはそういう挙動をするものですね あまり深く考えたことがなかったですが
462 名前:デフォルトの名無しさん [2016/06/01(水) 21:35:52.06 ID:GiudJL8+.net] 名前空間って使う?
463 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 00:06:26.06 ID:IwpY6iix.net] クラスと名前空間のどっちかは使ってる
464 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 06:29:17.74 ID:7N0T/hEv.net] 必要な時は使う。いらない時は使わない。 お前はそれを使っていると呼ぶだろう。
465 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 09:17:10.28 ID:jhQNhgjV.net] 名前空間って名前が被るのを防ぐために使うんだよね? だったら被らないような名前つければいいんじゃね?
466 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 10:57:02.14 ID:Bszjc45u.net] usleepで遅延できる最大時間は何秒ですか?
467 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 11:08:10.74 ID:
] [ここ壊れてます]
468 名前:Bszjc45u.net mailto: 名前空間は他のプログラムと名前がぶつからないようにしたいような ライブラリを書く時に使うようなものですので そうでない場合は気にする必要はないと思います [] [ここ壊れてます]
469 名前:デフォルトの名無しさん [2016/06/02(木) 11:50:09.15 ID:LIz4OI80.net] PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE) これさえあれば何だって作れちゃうね!PHP最強伝説!!!
470 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 12:21:37.61 ID:Bszjc45u.net] >>464 の件ですが echo PHP_INT_MAX / (60*60*24*1000000); で64bitマシンだと106751991日もsleepできると分かりました マイクロ秒にしたら桁が溢れるんじゃないかと思ったのですが 気にする必要はなさそうですね
471 名前:デフォルトの名無しさん [2016/06/02(木) 17:50:29.42 ID:x6y0PRZ+.net] >>466 あれがあれば無敵だよな
472 名前:デフォルトの名無しさん mailto:sage [2016/06/02(木) 19:03:01.78 ID:7N0T/hEv.net] 買ってあるが本棚で眠っている。無くても何でも作れるので必要ない。
473 名前:デフォルトの名無しさん [2016/06/03(金) 10:05:42.48 ID:uD7B680E.net] パーフェクトPHPと逆引きレシピで何でも作れるようになれる
474 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 10:14:36.48 ID:a/yvIYtd.net] 最近のPHPの本でいいのはないの?
475 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 10:57:02.65 ID:jxJ/wrE9.net] 関数型言語は早く短く書けるそうです PHPより早く書けるのでしょうか? PHPの「早さ」は標準機能の強力さにあるので、 やはりPHPが最速でしょうか?
476 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 11:09:10.82 ID:jxJ/wrE9.net] 「リモートにあるXMLを配列に入れる」 を一行で書けるPHP以上に開発効率のいい言語はなさそうですね
477 名前:デフォルトの名無しさん [2016/06/03(金) 11:18:20.27 ID:uD7B680E.net] public function setContent($content) { $this -> content = $content; } setContent(peropero); echo $content; ↓ peropero ?
478 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 12:34:38.26 ID:uqXPZzfx.net] ことweb向けならかなり手間のかからない部類だと思うけど、最速かどうかを気にしてどうするの。 どっちにしても自分でやってみなけりゃわからないと思うよ。
479 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:20:29.28 ID:L26ySebn.net] PHPは短くなんかない。メソッドが豊富だから恩恵を受けているが、 変数に必ず$がついて1文字余分だし、メンバ参照もアロー演算子のせいで普通の言語よりも1文字余分。 大体コードゴルフとかすると、Rubyにこてんぱんに負ける。
480 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 19:49:15.43 ID:rDkM18OB.net] コードゴルフはあれは仕事とか効率とかそういうんじゃないから 芸術だから
481 名前:デフォルトの名無しさん [2016/06/03(金) 20:12:29.15 ID:cokHCpg9.net] PHPに出来ないことはないってカンジだネ
482 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:24:58.84 ID:oXnkqg6Y.net] PHPやJavaの次ぐらいにコード量多くなる部類じゃね
483 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:25:30.42 ID:oXnkqg6Y.net] PHPや→PHPは
484 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:41:09.86 ID:jxJ/wrE9.net] 組み込み関数などを使わず 単純にアルゴリズムを競うだけなら、当然PHPは分が悪いでしょう ですが現実にはそんなコードはほとんど書きませんよね
485 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:41:48.01 ID:L26ySebn.net] まぁ、長くなるのはObj-Cが頭一つ抜けてる。
486 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:49:43.74 ID:L26ySebn.net] >>481 そんな話はしてない。 ダラーとかアローとか書きまくっててなんか感じない奴は根本的にセンス無い。
487 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 20:57:02.48 ID:jxJ/wrE9.net] >>483 は? そんな表層的な所に拘ってるあなたの方がセンスないと思いますよ もちろん、エレガントだとは言いませんが、 そこは本質的ではありません
488 名前:デフォルトの名無しさん [2016/06/03(金) 21:00:27.92 ID:cokHCpg9.net] けんかすな 最強のプログラム言語PHPの使い手同士なかよく
489 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:03:42.69 ID:jxJ/wrE9.net] PHPは美しい言語ではありませんが 「用の美」があるのです 自分はそこが気にいっています
490 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:07:08.61 ID:L26ySebn.net] お子様は今日も元気でいいな。
491 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:08:20.58 ID:L26ySebn.net] >>485 こんな子猿と同列に語るな、マヌケ。
492 名前:デフォルトの名無しさん [2016/06/03(金) 21:13:09.94 ID:cokHCpg9.net] また口だけのおっさんかよ
493 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:21:27.36 ID:L26ySebn.net] おまえ、毎回自己紹介得意だな。
494 名前:デフォルトの名無しさん mailto:sage [2016/06/03(金) 21:28:15.12 ID:L26ySebn.net] 腕があがるほど一周回ってジャブの重要性に気づくんだ。 お子様は華やかな技ばっかに気をとられるがな。
495 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:12:26.21 ID:YRPaaGZz.net] コマンドライン引数を書き換えることでプロセス名を変更するということを PHPでしたいのですが $argv[0] = "hoge"; とやっても変わりませんでした ググると-Hオプションで引数リストを隠せるようですが PHP内で書き換えたいです perlでは出来るそうです これは仕様上の欠陥ですね?
496 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 10:53:15.27 ID:Atk6t3Xm.net] setproctitleみたいなことをargvを使ってやりたいの? php.net/manual/ja/function.setproctitle.php
497 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 14:55:35.46 ID:YRPaaGZz.net] ファッ!? そんな関数あったんですね さすがPHPと言わざるを得ません ありがとうございました
498 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 15:38:46.82 ID:oUkZJriQ.net] 何が凄いかというと、 あんなわけのわからん書き込みで何を欲しているのか理解できる>>493 の判断力と、 >これは仕様上の欠陥ですね? こういう低脳っぷり。
499 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 15:50:28.37 ID:YRPaaGZz.net] >>495 お前には理解できないだけだろw お前みたいな奴をペチパーっていうんだろうな
500 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 16:01:22.36 ID:oUkZJriQ.net] ほら、更に低脳を上塗り。低能な上に低脳。もう、様式美。
501 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 16:28:58.88 ID:YRPaaGZz.net] ワロス 世界せまww
502 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 16:45:59.06 ID:YRPaaGZz.net] setproctitleはpeclを入れないといけないので汎用性に難がありますね ぜひ標準で入れて欲しいところです 現時点では仕様上の欠陥と言わざるを得ません
503 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 16:52:28.28 ID:oUkZJriQ.net] おまえのニーズで世界は回ってないってことを気づかないとダメだよ。低脳くん。
504 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 16:53:29.36 ID:oUkZJriQ.net] しかし、相変わらずこのスレはサルが後を絶えないな。まさしく動物園だ。
505 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 17:13:08.01 ID:YRPaaGZz.net] は?単なる一般的ニーズだが? CLIで使おうと思ったらこれが出来ないと困ります ワードプレスでもいじってろピグミーマーモセットが
506 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 17:15:03.71 ID:K+q297Cv.net] php.net/manual/ja/function.cli-set-process-title.php マニュアル読めないID:YRPaaGZzもNGで
507 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 17:18:49.61 ID:oUkZJriQ.net] “も”ってなんだよ、おれもこのサルと同じ扱いなのか? 勘弁しろよ…、本当に。
508 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:11:47.00 ID:oUkZJriQ.net] 本当にPHPerはサルしかいないな…
509 名前:デフォルトの名無しさん [2016/06/04(土) 18:36:42.24 ID:1P8M50yx.net] サルだけあってID真っ赤っ赤だな それは顔か?尻か?w
510 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:51:30.04 ID:YRPaaGZz.net] >>503 え、なんですこれ もう出来るんですか? さすがPHPと言わざるを得ませんね ありがとうございました
511 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 18:54:08.22 ID:FTbmrFHZ.net] 真っ赤?それは俺のこの手だ csvや配列で持ってるデータを複雑な条件で検索したいときって DBに格納するのが一番良いんかね
512 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:01:04.88 ID:K+q297Cv.net] >>508 まだベータだけどLINQ for PHPとか
513 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:19:03.12 ID:FTbmrFHZ.net] >>509 まさにこれなんだけど、こんなんがあって今βってことは やっぱこれ使う以外だとDBに入れるか自前で検索を組むしかないってことか ありがとう
514 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 19:44:25.80 ID:K+q297Cv.net] >>510 PackagistでLINQで探してみたら結構いろいろ実装があるみたいよ 探してみては如何
515 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 20:36:49.27 ID:FTbmrFHZ.net] >>511 ちょうどいろいろみてた 負荷と頻度考えて検討するわ
516 名前:デフォルトの名無しさん mailto:sage [2016/06/04(土) 21:59:15.81 ID:MFqaq7Mp.net] >>512 レポよろ
517 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 12:03:20.74 ID:xob/1tpk.net] 「次のn時m分」を取得するにはどうすればいいですか?
518 名前:デフォルトの名無しさん [2016/06/05(日) 12:03:29.70 ID:zsJffcbc.net] PHPであらゆることが出来るようになっていくなあ PHPさえマスターすれば仕事に困らないのさ
519 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 13:07:49.58 ID:9mzbmJB7.net] >>514 setTimeして戻ってたら+1 dayするとか function nextHM(DateTime $dt, $h, $m) { $next = clone $dt; $next->setTime($h, $m); if ($next <= $dt) { $next->modify('+1 day'); } return $next; }
520 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 13:24:18.21 ID:xob/1tpk.net] >>516 datetimeクラスなんてあったんですね 勉強になります ありがとうございました
521 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 18:26:14.42 ID:Tkwljjf2.net] >>514 こんな感じで計算をがんばるとか function nextHM($t, $h, $m) { $dif = date('Z'); $lt = $t + $dif; $nt = $lt - $lt % (24 * 3600) + $h * 3600 + $m * 60; if($nt <= $lt) $nt += 24 * 3600; return $nt - $dif; } $t は UNIXタイムスタンプね。
522 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 19:51:28.22 ID:TM3QCo+d.net] 見ろ、コードがゴミのようだ!
523 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 19:58:07.41 ID:CV0omAn/.net] これは酷い
524 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 20:12:32.45 ID:Tkwljjf2.net] え、計算でやろうと思ったらこんなもんじゃね? UTC からの時差を求め、ローカルタイムに直し、その日の指定時刻を求め、既に過ぎていたら日時なら翌日にし、UTC に直して返す、ということを淡々と並べただけだが。
525 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 20:24:39.75 ID:Tkwljjf2.net] あ、サマータイムに対応できないとかうるう秒とかどうなってんだって話なら、それはその通りだ。
526 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 23:07:07.91 ID:Iavazaq6.net] レンタルサーバーを借りたのでチャットができるホームページを作りたいです その為にwordpressの上でチャットプログラムを動かしたいと考えています まず何から取り掛かれば良いのか分かりません どのような知識が必要になり、どう勉強すれば良いか教えて頂きたいです
527 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 23:21:32.87 ID:Tkwljjf2.net] >>523 wordpress は置いといて、取りあえずチャットを作ってみたら。 定期的にリロードする式のチャットなら簡単だし、サンプルになりそうなのは探せばすぐ見つかるんじゃね。
528 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 00:49:55.95 ID:KjVn6FKA.net] >>516 >>518 まじかよおまえら
529 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 00:53:43.37 ID:O157QY9D.net] >>518 クソコードに認定します。
530 名前:デフォルトの名無しさん [2016/06/06(月) 01:05:50.44 ID:mm33J6PT.net] 代替案を出さずに煽るだけ 口だけオッサン
531 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 01:21:12.75 ID:BBAYr+Aj.net] >>525 と >>526 で意見が割れてるから、この二人が話し合えばいいように思う
532 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 04:46:49.75 ID:J1e3bhcQ.net] >>527 あのコード見てもこんな事言ってるというだけで、 如何にこのアゲバカが何も知らない低能かという事がハッキリしたな。
533 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 07:47:24.77 ID:OUgENTLv.net] >>527 ほんそれ
534 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 07:59:47.71 ID:z3VswDq0.net] >>524 ありがとうございます とりあえずは簡単でも動くプログラムを目指してみます サーバーとクライアントのチャットならイメージが湧くんですけど、phpでやるとなるとサーバー側のプログラムだけで実現するんですよね・・ リロードするということはデータベースにログを格納して参照するという認識で合ってい ますか?
535 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 08:33:02.73 ID:xfsRheZo.net] >>531 データベースに手を出す前に、まずはプレーンなファイルにログを保存する方が簡単。 直近の100行くらいをそのままテキストファイルに保存しておくとか。 掲示板と変わらないよ。 名前とか色とか時刻みたいなパラメータを個別にフィールド化したいなら行を適当に書式化する必要があるけどね。 例えばこんな感じ。 2016/06/05 23:10:01<タブ>system<タブ>000000<タブ>たろうさんが入室しました<改行> 2016/06/05 23:10:01<タブ>たろう<タブ>FF0000<タブ>こんばんは<改行> 2016/06/05 23:10:06<タブ>じろう<タブ>00FF00<タブ>やあ<改行> このファイルを file_get_contents するとファイルの中身全部がひとつの文字列として取得できる。 これを<改行>(¥n)で explode すれば行ごとの配列になる。 各行を<タブ>(¥t)で explode すればフィールド毎の配列になる。 新しい書き込みは行ごとの配列に追記し、必要な件数になるように array_splice なんかで調整する。 それを join なんかで配列を文字列化してファイルに保存する。 入力値にタブや改行が含まれている場合はスペースに置換する対策をするとして preg_replace なんかを使う。 ログファイルの読み書きを排他するためには flock を使う。 flock はログファイルそのものに対してやるんじゃなく、別のロックファイルを使うのを勧める。 flock でのロックなら使い終わったロックファイルは消さずに放置していい。
536 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 10:29:24.73 ID:z3VswDq0.net] >>532 具体的なアドバイスありがとうございます ファイルの読み書きでも実現できるんですね・・ すごく丁寧に手順を教えて頂けたのでその方法でやってみようと思います 排他制御など考えることも多そうですが、だいぶイメージが湧きました
537 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 10:53:52.96 ID:gg/xefDK.net] >>531 >データベースにログを格納して参照する それであってる。リロードに関してはAjaxとか使えばいい。 ファイルもいいが、データベースの方が応用利くのでおすすめだぞ。
538 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 11:07:34.48 ID:SWJRXsGZ.net] 一度DBに慣れるとファイル使うのめんどくさくなるよね
539 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 11:28:46.71 ID:xfsRheZo.net] いずれはDBにも手を出すことになるだろうが、今の段階ではまずファイルがいいよ。 DBの準備、テーブルの準備、DBへの接続、開発中のデータのメンテナンス、etc. 手始めにチャットをちょろっと作るには少々面倒だと思う。 しかも自前のファイル処理は排他なんかの基礎的な技術も使うちょうどいい題材だと思う。
540 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 12:02:24.68 ID:z3VswDq0.net] >>534 ,536 お二人ともありがとうございます まだphpを学習している段階ですので、ファイルから入りデータベースの利用も考えて拡張していけたらと考えています MySQLは多少触ったことがあるのですがAjaxとやらはJSで書かれてるみたいなんで心配ですね 当面の間の目標は決まったので取り組んでいきたいと思います
541 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 12:48:53.75 ID:cB/a+aRW.net] unixタイムスタンプの変数名として$dateを使うのは変ですか? dateといえば通常日付を持つオブジェクトですが phpの場合、dateは日付を文字列に直す関数の名前なので phpの作法としては良くないのか?とも思います どうなのでしょうか?
542 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 12:56:02.62 ID:i0QOUB1M.net] お前のシステムのタイムスタンプは日付単位なのか。すげえな。
543 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 13:05:19.30 ID:xfsRheZo.net] >>538 マニュアルではタイムスタンプを取る関数の引数リストは timestamp となってるから、PHP流にするならそれに従うとか? おれは近距離で使う場合なら $t とか $tm で済ますな。
544 名前:デフォルトの名無しさん [2016/06/06(月) 14:07:10.33 ID:VZp5fXoT.net] 一度でいいから口だけオッサンの溜め息が出るほどに素晴らしい華麗なプログラムを見せて欲しいものだ まあ、それが出来ないから口だけオッサンなわけなんだけれどもね
545 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 14:25:14.47 ID:cB/a+aRW.net] >>539 アスペ乙 >>540 timestampが無難ですね ありがとうございました
546 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 14:37:23.20 ID:CS8YjhCP.net] 最近の質問者は煽り耐性がないなw
547 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 14:48:20.68 ID:e+TlXwYN.net] int32だと2038年になったとき困るもんな そこで64bitPHPですよ
548 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 15:02:04.40 ID:Nu4gS3Qg.net] >>544 64bitPHPって、動作環境も64必須になるの?
549 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 15:44:32.88 ID:3yfrnV+f.net] 8bit環境でも動くよ
550 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 16:42:19.25 ID:cB/a+aRW.net] strtotimeは非常に柔軟な解釈をしますが これはphpが他の言語を参考にしたのでしょうか?
551 名前:デフォルトの名無しさん mailto:sega [2016/06/06(月) 16:44:19.58 ID:m0TG3c4D.net] Cのexec系のように 自分自身のプロセスを置き換えるプログラムの起動方法はありますか?
552 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 18:43:05.67 ID:BBAYr+Aj.net] >>548 こないだの人と同じだろうか。 php.net/manual/ja/ref.pcntl.php とりあえずここを一通り見るとこれからの疑問もいくつか解決できるかと。
553 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:06:02.71 ID:J1e3bhcQ.net] >>543 無いのは耐性じゃなくて羞恥心だ。本当にサルしかいなくなった。
554 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:08:37.27 ID:J1e3bhcQ.net] >>547 マネする事しかできないサルはそんなこと気にしても無駄だ。おとなしく使い方だけ覚えてろ。
555 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:10:05.25 ID:J1e3bhcQ.net] >タイムスタンプの変数名として$dateを使うのは変ですか? dateの意味が分からないサル、素敵。
556 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:17:07.72 ID:J1e3bhcQ.net] >>549 そのバカは教えてもらっても活用できないから総合的なリンクを貼っても無駄だ。 1から100まで手とり足とり教えてやるだけの覚悟が必要だぞ。
557 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 19:37:24.24 ID:cB/a+aRW.net] >>549 ちがいますよ 「こないだの人」っていうのはたぶん自分なので
558 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 21:51:51.16 ID:1+sOyhVW.net] MySQLの画像が表示できずに困っています。 main.php <img src="gazou.php"> gazou.php $src = file_get_contents('画像のURL'); echo header('Content-Type: image/jpeg'); echo $src; これなら正常に動作しますが、gazou.phpでDB接続しただけで画像も表示されなくなってしまいます。 $link = mysql_connect('localhost', 'root', 'pass'); DBに接続できる事は確認済みです。エラーも起きていません。 原因のわかる方がいたらお願いします。助けてください。
559 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 21:52:47.52 ID:1+sOyhVW.net] すみません。改行がおかしくなってました
560 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:00:04.71 ID:O157QY9D.net] <?php
561 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:06:18.56 ID:xfsRheZo.net] >>555 DB接続と画像取得を同時にやると memory_limit に引っかかるとか?
562 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:16:02.69 ID:lRe9eSuk.net] >>555 いや何でheaderをechoしてんの
563 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:20:02.11 ID:xfsRheZo.net] 言われてみればw
564 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 22:22:35.62 ID:1+sOyhVW.net] >>558 リミット増やして、画像を極小の物にしましたが駄目でした。 >>559 ネットにあった物を丸コピしましたが、echoする必要なかったんですね。 ありがとうございます。
565 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 23:12:41.43 ID:pobwg1Vi.net] >>561 そんなのネットに落ちてるのか URL教えてくれまいか
566 名前:デフォルトの名無しさん mailto:sage [2016/06/06(月) 23:15:55.37 ID:pcbEmQ5n.net] >>561 DB接続を先にして画像表示を後にしてみれば
567 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 00:05:13.10 ID:lP0BMeFG.net] >>563 すみません、先に接続してます 画像が表示されなくなるので、DBの画像がおかしいのかと色々調べて結論が DBに接続したからってよく分からない原因でした 自分以外は起きないようですしDBに画像入れるのは諦めます、ありがとうございました
568 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 00:21:59.49 ID:D2B0dW6i.net] >>564 レスポンス見るとたぶんなんか文字列が出てるんだと思うよ
569 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 03:50:11.15 ID:T/syB7Ij.net] こんなんで諦めるのか。
570 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 06:38:58.63 ID:T/syB7Ij.net] コードの出し惜しみすっからこういう事になんだよ。 細切れじゃなく動かないコードを全部はっつけてれば>>559 あたりがとっくに解決してくれたろうに。 勝手に質問して勝手に諦めて、ただのスレ汚しでしかねえよ。
571 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 07:25:50.44 ID:zVxkgyZ2.net] ブラウザからgazou.phpにアクセスすれば一発でわかるよ どうせDB接続エラーでも出てるんだろ
572 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 08:59:25.37 ID:bV3Kj9Se.net] 2038年問題とか気にしてるやついるのかよ もう32bitとか絶滅危惧種じゃねえか
573 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 09:56:02.61 ID:ljS7Rtyf.net] >>569 というか、今動いている32bit機があと20年は余裕で保守されてしまうのだよ・・・
574 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:01:48.24 ID:SWn+auCj.net] COBOLじゃあるまいし基幹系でPHP採用してるのはキチガイと言わざるをえないしその心配はいらない
575 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:08:11.73 ID:EI+C64Wv.net] 今なお動いているphp4のとき書かれた業務システムが普通にある
576 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:13:16.18 ID:mGsXs7zb.net] PHP4使ってるところすらあるでしょ。「保守」はされてないだろうけどw
577 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 10:17:14.37 ID:SWn+auCj.net] そのとおりだな 放置が正しい
578 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 11:27:15.75 ID:ZIJtMgP1.net] 2038年問題より、1970年問題に当たったことならあるなぁ 生年月日を扱おうとして。
579 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 13:46:49.20 ID:ljS7Rtyf.net] >>571 思うのはいいけど、現実は厳しいからね
580 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:17:17.55 ID:LhHMvfyC.net] 思うのっていうか、PHPのバージョンと開発者の技量に影響受けまくるので、4の頃なら頭おかしいって評価はとても正しい。
581 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 14:52:12.33 ID:Ht3PiVwV.net] phpをCLIで実行した場合、 $_SERVER['SERVER_ADDR']が設定されていません マシンのipアドレスを知りたい時には シェルコマンドを実行して自前で取得するしかないのでしょうか?
582 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 15:06:32.48 ID:TyQk9mVD.net] >>578 マシンのipアドレスって?
583 名前:デフォルトの名無しさん [2016/06/07(火) 15:38:49.13 ID:57zhvgUm.net] カレンダーを作るといいらしいね
584 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 15:47:57.36 ID:e+17T4IJ.net] 404や500などのエラー返す時にContent-TypeとResponse BodyってMUST?SHOULD?
585 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 16:33:43.53 ID:LhHMvfyC.net] >>578 $h = gethostname(); echo gethostbyname($h); isn't it?
586 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 18:26:48.76 ID:EI+C64Wv.net] そりゃIP複数持ってるマシンなんざいっぱいあるんだから設定されてなくても仕方なかろう
587 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 18:31:43.94 ID:Ht3PiVwV.net] >>582 随分すっきり書けるんですね ありがとうございます
588 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 18:49:34.57 ID:T/syB7Ij.net] >>584 u are welcome. >>583 $_SERVER php.net/manual/ja/reserved.variables.server.php > The entries in this array are created by the web server. do u think the web server will say something in cli? stupid!
589 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 20:25:27.97 ID:zVxkgyZ2.net] >>575 生年月日をタイムスタンプで扱ってるの? 生まれた瞬間のミリ秒まで必要?
590 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 22:16:27.40 ID:ZIJtMgP1.net] >>586 ミリ秒じゃなく秒と言いたいんだろうけど、秒どころか時刻もいらん。 ただ時間を扱ういろいろな関数の引数が UTC だから何も考えず UTC で扱っとけと思って失敗したという話。
591 名前:デフォルトの名無しさん mailto:sage [2016/06/07(火) 23:51:25.08 ID:GjrjfS/I.net] ハハ。$_SERVERの勘違いって誰もが通る道だね。
592 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 00:14:36.94 ID:mGCA+lka.net] 初心者なんだけど cgi,php の掲示板って普通にサーバーにアップロードして 動かすとサイトのURLの末尾が cgi、php ってなるけど 例えば、自分の好きな英数字 xxxx.html とかで htmlで表示する方法があるんだよね? これってやり方紹介してるサイトとかあるの?
593 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 00:23:54.79 ID:uL38izUF.net] Apacheかなんかのスレにどうぞ
594 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 01:23:51.21 ID:JCoBBX/9.net] >>589 > htmlで表示する方法があるんだよね? ある > これってやり方紹介してるサイトとかあるの? ある
595 名前:デフォルトの名無しさん [2016/06/08(水) 02:06:02.23 ID:HLpzPaCj.net] まとめますとggrks
596 名前:デフォルトの名無しさん [2016/06/08(水) 03:29:07.02 ID:YJzUTB/9.net] PHPとJavascriptって両方覚えた方が良いの?
597 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 04:13:34.53 ID:E3Y0fydP.net] htmlは静的、phpは動的なファイル。 静的なファイルは変更されないから、キャッシュ・圧縮が効く 開発環境でのディレクトリの場所が違ってくるし、 その拡張子・ディレクトリ構成を前提とした、フレームワーク・ツールが動かなくなる htmlファイルは処理Aして、phpファイルは処理Bして、という前提条件が崩れる また、CDNなどのキャッシュ・圧縮などに影響するかも? 素人は、変なことを考えない方がいい
598 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 04:45:13.41 ID:xWo5zVvm.net] 最後の1行に説得力を持たせるためにそれらを書いたのなら、かなりのセンス。
599 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 06:14:37.48 ID:Y0v6vn2E.net] サルが必死に知恵を絞るとこういう文章になってしまうというだけだ。 センスとか関係無い。
600 名前:594 mailto:sage [2016/06/08(水) 06:37:14.53 ID:E3Y0fydP.net] 慣例に従わないと、フレイムワーク・プラグイン・ツールなどが動かなくなる。 そういうツールの作者は、慣例を前提条件にして作っているから 何かがバグった時に、素人じゃ解決できないだろう プロでも設定ファイルで、あーだこーだ設定しても、 設定した人にはわかるけど、人が変われば、もうダメだろう
601 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 06:41:40.02 ID:Y0v6vn2E.net] >>595 な、マジもんだっただろ? 頭おかしいからほっとくしか無い。 素人にはかわいそうなこった。
602 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 06:43:42.35 ID:gbxJmrOf.net] みんないいか?触るなよw
603 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 07:10:14.83 ID:Y0v6vn2E.net] 今日も動物園一直線か。 たまには人間が見たいもんだ。
604 名前:594 mailto:sage [2016/06/08(水) 07:34:36.51 ID:E3Y0fydP.net] 君らは、Gradle, Jenkins などで、.html .php など、 拡張子によって、テストツールなどの処理を変えたりしないのか?
605 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 07:40:28.27 ID:Y0v6vn2E.net] うん、おまえ頭おかしいから元の質問100回よみかえして どういう状況かよく考えたら病院行って薬もらってこい。
606 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 08:10:33.58 ID:uL38izUF.net] 自分はApacheくらいしか分からんけども、ぱっと思いつくのは3パターンくらい。 質問に対して正直に答えるなら、.htmlも動的ファイルとして認識させる方法だが、 大昔のSSIとかはともかく、今はデメリットしか無いだろうなあ。 ファイルの更新よりも極端に閲覧が多いなら、伝統的な手段として、 あらかじめ静的ファイルを生成する方法があるが、質問者の意図とは遠いだろう。 あとは今の御時世だと、そこまでパフォーマンス的なメリット薄いかも。 比較的質問者の意図に近く、かつ>601のような問題にも対応するなら mod_rewriteによるパスの書き換えが無難かしらね? ただ初心者には難しい気がする。 やるなら最後だが、結局のところ最初はやらんほうがいいってことになるのかね。
607 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 08:25:59.30 ID:2v7uDDwq.net] htmlを動的ファイルとして認識させるのは、理解し切ってやるならデメリットだけとも言えないとは思う 質問者の意図から外れるのは同意だけど静的htmlの生成・保持は今のご時世でもメリット薄くないと思う 昔はサーバリソースの問題から、今のご時世でもアクセス数の増大と先読みやらなんやらの超アクセスの問題から 特に重い処理は一部だけの保持でも十分に効果がある というか一番の問題は動機、なんで拡張子偽装したいのか意味あんのかってあたりだと思うが そこを突っ込むのは野暮か *****.htmlじゃなくて /*****/ アクセスにするだけでも解決しそうな・・・
608 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 10:58:47.40 ID:YYbuS1Qq.net] php7ってなんで公式リポジトリに含まれないん? わざわざremiリポジトリ登録してやらんとあかんが疑問 JPCERTでも以前脆弱性出てたし わかる方いたら教えて
609 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 12:38:58.71 ID:CAvCMOWG.net] 有益かゴミかはやり方知った後でやる奴が判断すりゃいいんだよ。 頭のおかしい外部のサルが判断すことじゃない。 教えるかggrksのどっちかでいいんだ。ゴタクは日記に書いてろ。
610 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 12:56:25.16 ID:lrS0iOEg.net] >>605 デフォルトでは使うなってことでしょ
611 名前:デフォルトの名無しさん [2016/06/08(水) 13:40:06.16 ID:oY9bTRlh.net] パーフェクトPHPのフレームワークの章とアプリケーション開発の章を理解するには 先にCakePHPの基礎を学ぶのがいいと書いているブログがあった このスレ的にはどう思うよ?
612 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 15:55:08.69 ID:kQTZ9CNF.net] そんな無意味な書籍読まないし知らんけど FWのイロハがわからない人間にはイメージがつきにくい内容なら 実際何かしら触った方がいいのは当たり前のことだと思うが
613 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 16:46:59.87 ID:2v7uDDwq.net] そんな本読んだことないし読む気もないが、フレームワークの章だけならまだしも アプリケーション開発の章を理解するためにCakePHPの基礎やっとけというなら 高確率でそのブログが役立たずまたはその本が役立たずと思われる
614 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 16:56:11.26 ID:VGRHY7q5.net] 何でもいいよ PHP系のフレームワークはどれも同じ
615 名前:デフォルトの名無しさん [2016/06/08(水) 16:58:16.97 ID:HLpzPaCj.net] >>609 >>610 君らは自分の過去を無かったものにするのだな 別の本なりネットなりで勉学した初心者時代があっただろう 記憶喪失になったかな?
616 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 17:13:12.10 ID:2v7uDDwq.net] >>612 初心者の勘違い防止とステマ防止のためなら何度でも言うが 一番重要なのはHTTP、DNS、HTMLの仕組みの理解を深めることであって phpに関する学習は基本的にphp.netで十分 あとはプロセスだのスレッドだのファイルシステムだのSSL/TLSだのをレベルと必要性に応じて学べば足りる
617 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 17:51:55.00 ID:ZBwXDrqR.net] マンモス本がでてPHPの時代が来るんじゃあと思ったことならある LAMPで構成されることが多いしCMSもMVCフレームワークも豊富で困らないけどCakePHP推しはちょっと古いかもな ORMは使わないことが多く、結局PHPよりSQLの知識の方が需要あるんだよね
618 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:01:25.33 ID:lrS0iOEg.net] チームで開発するなら、フレームワークいいと思うけどね
619 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:05:39.32 ID:jZ2+9jcA.net] syslog(LOG_INFO,'info'); syslog(LOG_DEBUG,'debug'); syslog(LOG_NOTICE,'notice'); こうすると、debugだけ/var/log/messagesに記録されていません 開発時にはDEBUGなどの定数を設定しておいて その時にはLOG_DEBUGも出力される 開発が終わればLOG_DEBUGは出力しない みたいなことをやりたいのですが どうやれば出来ますか?
620 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:26:10.13 ID:PuNp4spr.net] 出ないのはsyslog.confの設定しだいだろうけど log出力をライブラリ利用するかラッパーかまして自分で制御しては syslogは開発完了後も使う前提だと思うけど
621 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:27:46.41 ID:v2PxA+KY.net] >>615 フレームワーク使うにしてもそれに合わせた設計や規約を作らないといけないんだから、それほど意志疎通の手間を省くこともできないしそれ程素晴らしいとも思えないがなぁ。 もちろん自分達で一から書くよりはマシだろうという期待はあるが、フレームワーク自体のメンテナンスも必要になってくるしねぇ。
622 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:33:06.92 ID:lrS0iOEg.net] >>618 > フレームワーク使うにしてもそれに合わせた設計や規約を作らないといけないんだから、 使わない方が大変な気がするが > それほど意志疎通の手間を省くこともできないし 共通基盤部分の意思疎通は不要だし、わからないこともWebで調べることができるというメリットがある
623 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:38:13.16 ID:jZ2+9jcA.net] >>617 LOG_〜はsyslogに対しての指定なのですね どうもその辺りが分かってなくて ありがとうございました
624 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:40:18.38 ID:Y0v6vn2E.net] CakePHPなんて薦めてる時点でお察し。 フレームワーク嫌いになるし、MVC勘違いするしでいい事なんにもねぇよ。
625 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:40:30.18 ID:mGCA+lka.net] >>594 cgi,phpをhtmlで表示する方法を知りたかったんだけど 素人はいじらない方いいってこと?検索して探しまくったけど細かく説明してるサイトがないんだよね 配布してるサイトには全く触れてないしさ
626 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:44:05.32 ID:Y0v6vn2E.net] >>611 の言うとおり、ロクなものが無いと言う点に於いては PHPのフレームワークなんてどれもおんなじ。 使いまわせるライブラリやフレームワーク自体を作ることが出来無い低レベルの会社か、 人の入れ替わりの激しい人買いくらいしかPHPの有名どころのフレームワーク使う恩恵なんてない。
627 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 18:45:20.25 ID:Y0v6vn2E.net] >>622 そういうことはしない方がいいってわかってるから情報も少ない。 まぁ、ぐぐりまくれ。いい勉強にはなる。
628 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 19:53:45.61 ID:cqVMGaEH.net] >>622 htmlでもPHPが動くようにapache設定するといいよ
629 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 21:28:57.46 ID:E3Y0fydP.net] 慣例から外れたことをやると、色々な設定を変えなければならなくなり、 一つ設定を変えると、またそれによって動かなくなるものが出てくる それで大変だから、慣例に従うのよ。 素人は解決能力が無いので、変わったことをしない方がいい たいてい、2chに居つく素人は、そういう変更をした人。 ずっと解決できなくて、2chに居つくw
630 名前:デフォルトの名無しさん mailto:sage [2016/06/08(水) 23:12:26.27 ID:gbxJmrOf.net] 素人こそムチャクチャにいじり倒したほうがいいよ。流した涙の分だけ強くなれる
631 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 05:24:32.22 ID:Z+K8nZfh.net] >>626 最後の二行なんか、まるで自己紹介かと思うくらいに真実味があるな。
632 名前:uy ◆e6.oHu1j.o [2016/06/09(木) 07:58:20.47 ID:soxVcx2A.net] 質問です <h1><?php echo "ruby"; ?></h1> これは純粋なHTMLコードよりサーバーに行わせる処理が多いものと思いますけど 気にしたほうが良い負荷ですか? 全てのページでこういう事やるのは避けたほうが良いですか?
633 名前:デフォルトの名無しさん [2016/06/09(木) 08:31:49.73 ID:udAwsxyk.net] 俺もそれ考えて、CachedNodeというクラスを実装しようと思う。 変更が有った時に幹に向かって破棄ビットを立てる。 変更があっても関連の無いノードのキャッシュは依然有効なまま。 変更が無い限り出力はキャッシュ済みでメモリー上にあるので最速。 まあセッションごとに起動される建前のPHPでは無理だけど。
634 名前:デフォルトの名無しさん [2016/06/09(木) 11:41:49.74 ID:I0vdXVFT.net] アロー演算子 -> って前後にスペース入れちゃだめなの? $this -> hogehoge() みたいにしちゃダメ?
635 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 12:52:46.82 ID:1e+LEmpu.net] >>629 そういうことする為にwebプログラム言語はあるんだ。
636 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 18:58:43.72 ID:Z+K8nZfh.net] なんで uy がここにいんの?
637 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:48:33.33 ID:gOehAXHk.net] PHPでフォークをしてみたいのですが 子プロセスが全部終了するのを親が待つのは 作った子の数だけpcntl_waitすればいいのでしょうか? 子が死んだ時に待ってる制御が必ず戻ってくるのか、 というところに不安があります もし待っているのに制御が戻らないと、永久ループになりますよね そのへんは心配いらないのでしょうか?
638 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 21:49:19.88 ID:gOehAXHk.net] ×子が死んだ時に待ってる制御が必ず戻ってくるのか ○子が死んだ時に制御が必ず戻ってくるのか でした
639 名前:デフォルトの名無しさん mailto:sage [2016/06/09(木) 22:59:36.92 ID:gOehAXHk.net] $childPidList = []; for ($i=0; $i<5; $i++){ $pid = pcntl_fork(); if (!$pid){ echo getmypid()." forked\n"; sleep(100); exit(); }else{ $childPidList[] = $pid; } } while (count($childPidList)){ $pid = pcntl_wait($status); $idx = array_search($pid,$childPidList); unset($childPidList[$idx]); echo "{$pid} ended\n"; } こんな風にしてからkill -9で子プロセスを外から強制終了させても、 ちゃんと制御が戻りました 心配しなくても良さそうですね?
640 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 03:12:35.40 ID:0e6lKjME.net] 1つのファイルに1つのclassが書かれてるとして、許せる行数/KiB数はどのくらい?
641 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 04:50:15.18 ID:9JKXGlcv.net] >>637 IDE使ってれば勝手に教えてくれる。 まだテキストエディタで書いてるのか?
642 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 08:24:36.60 ID:PSfQ4+av.net] 最近のIDEは行数にまで口出してくるのか。うぜえなw
643 名前:デフォルトの名無しさん [2016/06/10(金) 10:09:46.35 ID:mlu6vup/.net] 時代はJavaScriptよ Mode.jsなら何でも出来る
644 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 10:19:00.19 ID:QeldepT2.net] >>639 「変数が再定義されています。予期しない不具合を避けるため別の名前を用いて下さい」とかまで言ってくれるぞ。可愛いだろ?時々ぶっ壊したくなるけど。
645 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 10:21:02.62 ID:wJTDb5hO.net] うちはもう全部SATAだぞ いい加減古いPCは捨てろよ
646 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 11:16:48.36 ID:vAcnizog.net] サーバーのファイルを直接的に編集できるからNotepad++使ってるんだけど こうしたFTP機能があるIDEってある?
647 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 12:29:34.80 ID:QeldepT2.net] 大抵のIDEはできるんじゃねえの? そういう事はやらんからよく知らんけどやってる奴は見た。
648 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 12:54:52.57 ID:vAcnizog.net] >>644 ありがとう。 IDEは重いから避けてたけど、勉強がてらもう一度やってみます。
649 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 14:36:45.66 ID:VX0S6iFV.net] phpの関数の引数の順番に迷うことが多いです 覚えやすいコツありますか?
650 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 14:38:09.38 ID:VX0S6iFV.net] たとえばarray_searchなら arrayをサーチするんだからarrayの方が先やろ→誤 となります
651 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 15:57:07.05 ID:gE4dMqOe.net] >>646 覚えることを諦めてIDEに教えてもらう
652 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 18:47:17.98 ID:9JKXGlcv.net] >>648 いい流れだ。腕を上げたな。 >>646 覚えなくてもいいから何が何でもphp.net検索しろ。 たまに下の方まで読むといろいろためになる情報が書いてあったりする。
653 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 18:50:21.21 ID:9JKXGlcv.net] >>647 そういうのはJavaScriptみたいなのがいいよな。 array.join(",") みたいなの。ずっと分かりやすい。 Rubyもこんな感じだったっけか。
654 名前:デフォルトの名無しさん [2016/06/10(金) 18:54:05.44 ID:TQGlf4QP.net] PHPStorm使えばいいんだろ?
655 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 19:02:50.34 ID:4O+4qcPo.net] PSR-2フォーマッタついててPHPマニュアルがすぐ引けるなら何でもいい
656 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 19:31:49.15 ID:9JKXGlcv.net] >>651 PHPStormは有償だから必ずしも職場で使えるとは限らない。 使えればラッキーだが、使えなかった時の事も考えておかなければならない。
657 名前:デフォルトの名無しさん mailto:sage [2016/06/10(金) 20:18:43.09 ID:nh6LPx54.net] >>612 なんで特定の本の話題出してそれに答えなきゃならんのか もってること前提で質問されてもここはサポセンじゃないわけでな ちなみに本に頼ったことなどない
658 名前:デフォルトの名無しさん [2016/06/10(金) 20:26:02.28 ID:TQGlf4QP.net] >>654 亀レスにも程が有るのでは?
659 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 02:22:58.71 ID:BPhbrCpU.net] 亀をいじめないで!
660 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 05:12:42.04 ID:YhzsbXwG.net] 40レスぐらいで亀って随分平和になったな
661 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 06:46:43.40 ID:U0YLx5iK.net] レス数の問題だと思う奴は頭の障害疑ったほうがいいぞ。 普通は時間とタイミングを考慮する。
662 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 11:22:18.74 ID:7IE41uX0.net] ファイルをオープン(なければ作成) →ロック →読み込んで配列にunserialize →配列の内容を変更 →配列をserializeしてファイルに書き込み →ロック解除 ということをやりたいのですが、 ロックする前の、もしファイルがなければ作成する、という処理の部分は 排他的ではないので、変なことが起きる可能性があるんじゃないかという気がします どうなんでしょうか?
663 名前:デフォルトの名無しさん [2016/06/11(土) 11:35:30.80 ID:BbMy6dfc.net] >>659 其の通り
664 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:05:21.84 ID:U0YLx5iK.net] そういう心配しなくてもいいようにDBつかうんだぬー わざわざファイル操作で頭悩まさると禿げるんだぬー
665 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:11:12.11 ID:7IE41uX0.net] でも良くある処理ではありますよね? どうすれば問題が出ないようにできますか?
666 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:18:20.33 ID:enSm4S6w.net] 何らかの方法で排他的ロック方法を採用する 動作させるOSによって色々方法はある
667 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:21:08.46 ID:e5AOazPt.net] uniqid()とかで一意なファイル名にする
668 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:24:02.14 ID:enSm4S6w.net] →ロック →ファイル操作 →ロック解除
669 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:30:39.02 ID:rc3AwP02.net] >>661 DBならそういう心配しなくていいと思ってるからお前禿げてるんだろ?
670 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:34:32.72 ID:vIdecit0.net] >>659 オープンと無ければ作成は同時にできる。 そこで取得したハンドルを flock すれば何の問題も無い。 でも、ロックファイルと本当に読みたいファイルは分けておくと何かといいと思う。 ロック方式を変える場合とか、データファイルの読み書きに fread じゃなく fire_get_contents とか include とか使いたいとか、 いろいろと融通が利くようになるから。 一度やれば面倒なんてことはないから、たったそれだけのために DB に走るのはまだ早い。
671 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 12:40:53.02 ID:vIdecit0.net] たったこれだけ。 $lock = fopen('.lock', 'a'); flock($lock, LOCK_EX); <排他されたコード> fclose($lock); 排他されたコードとして、データファイル読んで操作して更新する処理を書けばいい。 更新の仕方を工夫すると、共有ロックと排他ロックを使い分けて同時アクセス時のパフォーマンスも上げられる。
672 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:02:26.63 ID:U0YLx5iK.net] >>666 DBはそういうこといちいち考えなくても大丈夫な仕組みがいっぱいあるんだぬー そんな事もわからないからおまえは666とか不吉な数字なんだぬー おまえみたいなとんちきはオジー・オズボーンと一緒に田舎のババアから十字架持って追いかけられるといいんだぬー アホが治るぬー
673 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:05:21.79 ID:U0YLx5iK.net] >>668 > fire_get_contents とか あうあうあうあうあうあうあうあうあう… やばいよやばいよやばいよ… いろいろやばいよ…
674 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:06:01.45 ID:rc3AwP02.net] >>669 その大丈夫な仕組みが>>668 みたいなコードなわけだけど DBとファイルでやってることが根本的に違うわけでもなしに 言ってることもキチガイじみてるし病院いったほうがいいよ^^;;
675 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:06:40.55 ID:U0YLx5iK.net] やばくないか… 酔っ払ってるから何言いたいのかよーわからん 後で読み返す。
676 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:07:43.11 ID:U0YLx5iK.net] >>671 だったらおまえはずっとファイル操作でしこしこやってたらいいんだぬー
677 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:09:52.19 ID:vIdecit0.net] >>670 燃えそうw
678 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:10:00.47 ID:rc3AwP02.net] 酔っ払ってるを言い訳にするぐらいなら書くなよ だからお前のコードはデッドロックばっかおこしてるんだぜ
679 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:14:29.55 ID:U0YLx5iK.net] >>675 デッドロックなんて気にしてるってことがおまえがアホみたいな事やってる証拠なんだぬー 俺様はそんなしんぱいしなくてもいいようにシステムを作るので全く無縁の話なんだぬー
680 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:16:52.88 ID:U0YLx5iK.net] >>667 がどんなアホかと思ったけど、よく読んでみたら ファイルをロックしていても読める関数使えって事らしいから、 本物のアホではないみたいだぬー ただ、やってることが旧時代的でアホらしくてやってられないんでぬー
681 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:19:18.72 ID:vIdecit0.net] >>676 排他する対象がひとつの DB の内容だけにとどまっていれば適当にやってもそうそうデッドロックしないかもしれないけどな。 余所の DB やシステムと連携したり限られたデバイスやリソースを共有するとか、排他は奥が深いぞ。
682 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:24:19.64 ID:U0YLx5iK.net] >>678 その事と本件が何の関係があるんだぬー ファイルロックしてれば他所のシステムと連携した場合でも簡単に排他できるのかぬー? よっぽど大変になるのが目にみえてるんだぬー おまえが物事の深さを語るのは108年早いんだぬー
683 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:25:50.01 ID:vIdecit0.net] >>679 ファイルロックがあれば基本的になんでも排他できるだろ。 セマフォとか知らないか? あれも実装によってはファイルロックだぞ。
684 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:30:10.44 ID:vIdecit0.net] なんでもは言いすぎだったな。 でもいろんな応用をするための基礎だからやっとけって。
685 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:36:56.47 ID:U0YLx5iK.net] >>680 「なんでも排他できるだろ」っておまえはアホかぬ? 排他する事だけがシステムの目的みたいになってるアホ発言だぬー そんなにはいたいなら医者行けばいいぬー ファイルで取り回すよりDB使ったほうがやれることがはるかに膨大なんだぬー 排他なんてそのうちのほんの1メリットだぬー だったらDB使っちゃったほうがお得だぬー とか言ってると、「DB使えない場合はどうすんだ」とか言うアホがでてくるんだぬー だから今のうちに言っとくぬー 一般的でないケースの事なんか知るかハゲ!
686 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:38:31.55 ID:U0YLx5iK.net] >基礎だからやっとけって。 DBは今時常識だからやっとけって。
687 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:41:00.34 ID:c3/xDSGs.net] >>668 if (flock($lock, LOCK_EX)) { ... } という風に失敗した場合の分岐を用意しよう また新しいPHP(5.3.2以降)では手動でflock($lock, LOCK_UN)する必要があるらしい
688 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:42:44.74 ID:vIdecit0.net] >>683 DB 使うなとは言ってないぞ。 手持ちのカードが多ければ好きに使い分けられるだろ。 お前はアクセスカウンター作るにもDB使うんだろうが、その選択しかできないのであれば潰しがきかないぞ。
689 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:43:06.58 ID:U0YLx5iK.net] ほら、なんかいろいろとめんどくさい情報がくっついてきたぬー おまえら、人生楽しそうだぬー
690 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:45:16.50 ID:U0YLx5iK.net] >>685 ファイル操作にこだわってるお前のほうが潰しきかないから他人の心配してる暇ないんじゃないかぬー?
691 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:46:22.53 ID:vIdecit0.net] >>684 LOCK_UN 必須の件は初耳だったけど、それ本当? この辺の機能は OS の機能をそのまま使ってて、そんなに差がでる部分じゃないというか、ハンドル閉じてロックだけ残るってどういう事情だよって感じだが。 ハンドルを複製してるケースとかかな?
692 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:49:14.38 ID:U0YLx5iK.net] >>688 おまえが調べてQiitaにでもまとめといてくれぬ。 必要になった時に見てやるぬ。 それまでは俺様は優雅にDB使ってるぬ。
693 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:53:03.18 ID:vIdecit0.net] >>684 5.3.3 で試したけど、少なくとも >>668 の使い方では LOCK_UN の明示は要らないね。
694 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:55:02.40 ID:c3/xDSGs.net] >>688 ついさっき確認したら変更履歴にそう書いてあったからであって、俺は検証してないよ php.net/manual/ja/function.flock.php どうなるのか想像でしかないが、解放しないと2度目からFALSE返すとかじゃね
695 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:57:05.92 ID:U0YLx5iK.net] 圧倒的な人柱感
696 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 13:58:16.03 ID:U0YLx5iK.net] そういう、ファイルシステムの影響モロに受けそうな処理を平気でやる人たちって、 結局心が強いんだろうな。 オレはチキンだから無理だぬー
697 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:18:34.99 ID:a1oB3JFl.net] まーた馬鹿が暴れてるのかー
698 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:24:21.01 ID:U0YLx5iK.net] まーた馬鹿が戯言だけホザくのかー
699 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:29:21.37 ID:U0YLx5iK.net] 本当に、まともな思考力のある人間はいないのかねぇ…
700 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:39:42.63 ID:a1oB3JFl.net] え?自分がまともな思考力もってると思ってんの?
701 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:46:49.83 ID:7IE41uX0.net] >>668 ロック用ファイルを別に用意するんですね ありがとうございます ちなみにやたらdbを推してる狂人がいますが 今書いてるのはなるべく他のプログラムを使いたくないものなので、 今のところdbは考えていません
702 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:54:08.42 ID:U0YLx5iK.net] >>697 自己紹介乙 このスレの参加者は自己紹介だけは得意だ
703 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:55:15.54 ID:U0YLx5iK.net] >>698 なんか修行でもしてるんだ。学生は暇でいいね。
704 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 14:57:12.43 ID:U0YLx5iK.net] PHPerはとにかく何でもPHPでやりたがるというのは本当だな。 脳みそが崩壊してる。
705 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:36:01.25 ID:a1oB3JFl.net] ノウミソ崩壊って自己紹介はやめろって!
706 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:43:02.88 ID:U0YLx5iK.net] オウムさん餌でもついばんででください
707 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:45:49.48 ID:U0YLx5iK.net] 人間、いないねぇ…
708 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 15:59:10.40 ID:a1oB3JFl.net] 低収入オッサンやめろよ ここはストレス発散のはけ口じゃないんだよ!!!
709 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:05:51.89 ID:U0YLx5iK.net] うん、ここはお前らの低能をなぐさめあう場所でもない。わかってるだろ?
710 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:06:40.12 ID:U0YLx5iK.net] あと、さすがに酔いがまわってきたから突然落ちるよ。
711 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:08:50.21 ID:a1oB3JFl.net] 低能低能いうけどお前レベル低いからな(笑)自覚しろよ!!!
712 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:11:06.58 ID:ZgIjL8Zc.net] 最初flock絡みでデッドロックやらかした時は スクリプト止まらないしエラー吐かないしで何が悪いのか全然わからなくて立ち往生状態だった >>698 serializeほど楽じゃないが別途db用デーモンを起動させとかなくていいsqliteは便利 そういや手軽なdbの話じゃ最近berkeley dbの名前を全然見ないな…なんでだ
713 名前:デフォルトの名無しさん [2016/06/11(土) 16:11:26.13 ID:BbMy6dfc.net] PHP使ってるのなんてみんな底辺だから仲良くしようや
714 名前:668 mailto:sage [2016/06/11(土) 16:16:02.35 ID:0LrYNLoc.net] >>698 >>684 の情報により、fclose の前に flock($lock, LOCK_UN) を入れてね。 あと flock 使った排他で重要なところは、処理が終わってもロックファイルを消しちゃダメということ。 ロックファイルの存在確認式なんかだと処理が終わったらロックファイルを消す必要があるけど、flock式はそうじゃない。 同一のファイル(パスではなく inode)をオープンすることでロックをかけるから、消して作り直しても同じファイルにはならずその間でのロックがかからない。 あと、NFS 領域に対しては flock が使えない場合があるから、それは制限事項として覚えておいて。 といった具合に説明すると長くなるけど、コードはシンプルだから覚えておいて損は無いよ。
715 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 16:24:29.25 ID:ZgIjL8Zc.net] >>691 いや違う、falseを返すとかじゃなくてデッドロックを引き起こす 延々とロック取得待ち状態になってkillしなきゃいけなくなる
716 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:09:00.14 ID:U0YLx5iK.net] お前ら、人生楽しそうだな。 俺は頭痛い…
717 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 19:12:41.27 ID:U0YLx5iK.net] おっかしいな… なんでこんなに頭いたいんだ?
718 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 21:39:16.03 ID:vIdecit0.net] >>712 マニュアルに書いてあることにケチつける気は全く無いんだけど、 Linux の 5.3.3 と Windows7 の 5.6.22 で実験しても、LOCK_UN が必要だと思われる挙動が認められない。 fclose だけでロックは外れるし、同プロセス内で同じハンドルに対してアンロックも fclose もしないまま 2重にロックを掛けてもデッドロックしない。 どういうケースで LOCK_UN の明示が必要なんだろう? 実験コードはこれ。 $lock = fopen('lock','a'); echo "start\n"; if(!flock($lock, LOCK_EX)) { echo "fail 1\n"; exit(1); } echo "locked 1\n"; // ロック成功 if(!flock($lock, LOCK_EX)) { echo "fail 2\n"; exit(1); } echo "locked 2\n"; // 二重ロックでもデッドロックしていない fgets(STDIN); // ENTER が押されるまで待つ fclose($lock); // アンロックせずクローズ print "unlocked\n"; sleep(5); // プロセスの終了を引き延ばす(ロック残り状態があるならそれを維持する) print "end\n";
719 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 22:15:24.50 ID:ZgIjL8Zc.net] >>715 すまんが712は単純に「LOCK_EXされたファイルへのLOCK_EX」の挙動を書いただけ flockの仕様から同一プロセスからの多重flockは後に指定したLOCK_**に上書きされるだけ、なのも確実(winは知らん) で、記憶掘り返しながらこっちでも試してみたけど>>715 の言うとおり 同一プロセス内でも、別プロセスでも、fopen->flock->fclose->fopen->flock でデッドロックしなかった flock($fh, LOCK_EX)絡みでデッドロックになってハマった記憶が確かにあるんだがなあ…しかも1プロセスで 昔書いたソースとメモを読んでるけど該当箇所が見つからん
720 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 22:25:33.55 ID:U0YLx5iK.net] 具合悪い… 吐きそう…
721 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 22:43:11.56 ID:vIdecit0.net] >>716 アンロックも fclose もせずに fopen からやり直したに一票。 $lock = fopen('lock','a'); flock($lock, LOCK_EX); echo "locked 1\n"; $lock = fopen('lock','a'); flock($lock, LOCK_EX); echo "locked 2\n"; それは置いといて、仕様変更の事情が気になったので PHP のソースを読み始めた。 読んで分かるかは分からんけど、とりあえずソースを flock で grep したところから辿ってる。
722 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 22:53:40.15 ID:U0YLx5iK.net] 排他的に内容更新したいだけなのにお前ら何やってんだよ…
723 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 23:21:54.93 ID:u5pRtWh9.net] 僕の友達に「ゲームプログラムを兄から頼まれてよくやってるー」などと言ってる奴がいます。そいつにどんな言語使ってんの?とかきいてもいろんな言語使ってるから意識したことないわwとか誤魔化したり、c言語は難しくてよくわからんとか言っているのです。 なんか嘘くさいんで掘り下げてやろうと考えてます。 もしゲームプログラムするならこれは知ってて当然みたいな知識あったらそいつに仕掛けて反応見てみたいので教えてください。
724 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 23:27:06.01 ID:u5pRtWh9.net] 各場所間違えてました ごめんなさい
725 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 23:36:10.98 ID:ZgIjL8Zc.net] >>718 そんな感じがしてきた。(だが718のコードだと$lockを上書きしちゃってるからデッドロックは起きない) 同一のファイルを二重に開いて別々にファイルハンドルを保持し別々にflockしたとき 片方だけでもfcloseしたら両方LOCK_UNされることの対策か、とも思ったけど 実際に下記を手元のwin-5.2.0とlinux-5.1.6とlinux-5.6.8で試してみたら、どうも違うようだ $file = './flock.lock'; $fh1 = fopen($file, 'a'); flock($fh1, LOCK_SH); $fh2 = fopen($file, 'a'); flock($fh2, LOCK_SH); fclose($fh1); $fh3 = fopen($file, 'a'); flock($fh3, LOCK_EX); // いずれもここでデッドロックが発生 わからん
726 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 23:46:33.60 ID:vIdecit0.net] >>722 上書きしてるから起こるんだよ、オブジェクトみたいに変数上書きしたら参照が無くなった方が勝手に破棄されるんじゃないから。 でも本質は、一つのハンドルには何度繰り返しロックをしてもスルーされるけど、一つのファイルでも別個の 2つのハンドルを取得しちゃった場合、 その両方にロックを掛けたらそりゃ 2度目の方はブロックされるという点。 意図せずこのバグを引き起こすケースとしてはこんな感じじゃね。 $lock = fopen('lock','a'); flock($lock, LOCK_EX); <なんかの処理、でもうっかり $lock の値を壊してしまう> fclose($lock); // ロックを解放したつもりだけど、$lock が正しいハンドルを示していないから失敗、ハンドルリーク $lock = fopen('lock','a'); flock($lock, LOCK_EX); // 二度目のロック、同じファイルだけどさっきのロック取得済みのハンドルとは別ハンドルになるからロックを取得できない :
727 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 23:50:10.54 ID:vIdecit0.net] >>723 ごめんうそ言った。 ハンドルを上書きしたらクローズされてるみたいね? なので >>723 は忘れて。
728 名前:デフォルトの名無しさん mailto:sage [2016/06/11(土) 23:57:31.23 ID:ZgIjL8Zc.net] >>724 気にすんな しかしこうなると真面目に手動LOCK_UNの意味・有効な場面がわからなくなってくるな というかfclose/flock仕様変更の前後の差異がわからん
729 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 04:10:30.87 ID:p2hTIoUv.net] 懐かしい話を掘り起こしているようで tumblr.tokumaru.org/post/37141017115/
730 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 04:35:52.53 ID:jxNAYoxL.net] オブジェクト指向はアクセス指定子や抽象クラスなどで やってはいけないことや守るべきことをコードの中で示すことができますが フォークすることによって起きる事態に対しては無力だと思います たとえば、プロセスidを入れ込んだファイルパスは、 その都度getmypidを呼んで生成しなければいけない、 というようなことを、コードのシンタックスによって示すことは出来ませんよね コードのどこかでフォークしているということに気付かずに いちいち毎回作り直さずにキャッシュすればいい、と思うことはありそうです いい方法はないでしょうか?
731 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 07:55:29.22 ID:4xmbllsr.net] >>726 参考になった。ありがとう。 でもこれ、system関数のバグなんじゃね? 内部で fork した後、親プロセスから継承したハンドルを閉じてないんじゃ? そこのデッドロックのサンプルだと、デッドロック中はロックファイルの lsof は子プロセス側に 2件ある。 5.3.2 での改修ポイントが間違ってたんじゃないのかなぁ… 少なくとも OS のシステムコールレベルではハンドルを閉じればロックも否応なく外れちゃうし、これは Unix系も Windows も一緒なはずだが。
732 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 08:18:59.24 ID:4xmbllsr.net] 検証した。 やっぱ子プロセスが継承したハンドル持ちっぱなしだよ。 当然マルチプロセスの処理を書く時にはそれを意図的に利用したいことはあるけど、PHP だったら内部で exec系を行う前にはスクリプトで開いたハンドルは全部クローズするべきなんじゃないのかね。 ただ現象が起こる理由は分かったから、それに基づけば明示的なアンロックが無くても影響があるところはほとんど無さそうだと判断するけどな。
733 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 13:06:26.58 ID:0JopogCG.net] そもそもflockシステムコールはもともとマニュアルに書いてあるように flock() によって作られるロックは、 オープンファイル記述 (open file description) (open(2) 参照) と 関連付けられる。 したがって、ファイルディスクリプターの複製 (fork(2) や dup(2) などにより作成 される) は同じロックを参照し、 これらのファイルディスクリプターのどれを使っても このロックを 変更したり解放したりできる。 また、ロックの解放は、 上記の複数のファイルディスクリプターの いずれかに対して 明示的に LOCK_UN 操作を指示した場合か、これらのファイルディスクリプターが すべて 閉じられた場合に行われる というもので、phpのfclose関数の中でわざわざLOCK_UNしてたのは余計なお世話 で本来の動作を阻害していたから5.3.2でやめたって理解でいいんだろうか。
734 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 13:26:47.31 ID:4xmbllsr.net] >>730 うん、よくよく考えると > というもので、phpのfclose関数の中でわざわざLOCK_UNしてたのは余計なお世話 ということが正しいと思う。 元々マルチプロセスなプログラミングで自動で複製されるファイルディスクリプタの扱いはプログラマが意識する必要があって、複製の後始末をせずにロックが残ることがあるのはそもそも設計ミス。 こういうことをフォローするために PHP では fclose でのついでに自動でアンロックが走るようにしていたけど、そうると親子プロセスの一方で不要になったディスクリプタを閉じただけでロックまで外れちゃうという問題を引き起こす。 だったらリソースの管理はやっぱりプログラマに任せるって判断が妥当なんだろう。 互換性の点でも、そもそもディスクリプタの複製が行われるケース(恐らく PHP では fork を伴う何か)と関係無ければ fclose だけでロックは解放されるから問題は無いし、 複製が行われるような処理ではアンロックの必要性についてはプログラマが意識していてしかるべきだから、 結局のところ fclose にアンロックを合わせこむのをやめるのが正解だな。 ただ system をはじめとするシェル系の関数は気軽に使いがちだから、子プロセスのハングアップでロック残りが起こる可能性は身近かもしれないね。 これまでアンロックせず動いてたスクリプトを無理やり改修する必要までは無いけど、これから書くならアンロックは明示しとけってことだな。 久々に勉強になった。
735 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 14:20:54.54 ID:QWuFqOwW.net] >久々に勉強になった。 使う機会あるといいけどな。
736 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 14:39:38.95 ID:Y/PMYUAu.net] 別に子プロがハングしようとLOCK_UNには関係ないんじゃないか execしたphp以外のプロセスがロックしててもphpのロックには関係ないし どんなプロセスでもプロセスが終わればロック解放されるんだから
737 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 15:10:09.70 ID:3j0TR14y.net] >>733 ハングして終了しなければ殺すまでロックしっぱなしだろ
738 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 15:21:03.49 ID:3j0TR14y.net] 説明が足りないか。 PHPでファイルを開きロックをした状態で、例えば system で別プロセスを起動したとする。 このプロセスは、PHP で開いていたファイルディスクリプタの複製を持つ。 ディスクリプタが複製されても取得しているロックはひとつで、このディスクリプタのいずれかでアンロックすればロックは解放される。 誰もアンロックしなかった場合、そのロックに紐付く全てのディスクリプタが閉じられた場合に解放する。 つまりディスクリプタの複製を持った子プロセスがそれを閉じないままハングした場合、親プロセスがディスクリプタを閉じてもロックは解放されず、子プロセスを殺すまでロックされたままになる。 ちなみに子プロセスがPHPかどうかは関係無い。
739 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 15:29:21.61 ID:jxNAYoxL.net] ファイルパスを正規化するにはどうすればいいですか? realpathで出来ると思っていたのですが まだファイルが存在しない時点では結果がfalseになるので駄目でした
740 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 16:09:50.68 ID:hcrF9o1u.net] >>736 標準関数にはない。 Packagistには恐らくあるだろう。
741 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 17:23:27.51 ID:jxNAYoxL.net] >>737 ありがとうございます packagistというところから辿ったらありました https://github.com/perchten/php-truepath/blob/master/src/truepath.php
742 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 17:28:53.54 ID:pWHiM9s7.net] とりあえず話が収束したらまとめとして残してくれる? ここまで議論しといて残さなかったらPHPerとして恥だし
743 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 17:51:52.67 ID:SdG9GRKe.net] 他力本願こそPHPerとして恥だぞ
744 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 18:52:27.13 ID:Y/PMYUAu.net] >>734-735 あるファイルをphpで有効にLOCK_EXしても別プロセスで起動したviには何も影響しないと認識していたが? だからphp以外をexecしてロックが生じてもphpの記述には関係がない=fclose前のLOCK_UNに関係ない ある.php内であるいはexecで呼び出した.phpでファイルロックが起きてもmax_execution_timeの縛りで強制終了すればロックは解ける ゆえに「ロック残り」とやらで掴みっぱなしになることはそうそうない、そう認識していたんだが
745 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 18:52:38.31 ID:QKWa7och.net] で、お前らぴーえいちぱーって読んでんの?
746 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:03:36.38 ID:4xmbllsr.net] >>741 flock によるロックって別のプロセスからのファイルアクセスを禁止するわけじゃないから。 同時にロックを取得できないだけであり、それによって「ロックを取得しようとするプロセス同士」を排他するわけ。 ロックを取得しようとしないプロセスはロックされたファイルであろうとアクセスし放題だよ、例えば vi とかね。 Windows では他のプロセスからのファイルアクセスを禁止することもできるけどな。
747 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:06:30.53 ID:QKWa7och.net] ピーチクパーチク、ピーエイチパーチク ヨー、チェケラッチョー
748 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:15:10.09 ID:Y/PMYUAu.net] >>743 あれviってflock使ってなかったっけ?まあいいや他のなんでもいいんだが 本旨はphpにおける明示的flock($lock,LOCK_UN)の必要性だろう、それが他プロセスとどう関わるんだ 結局どういうときにLOCK_UNしないと「ロック残り」が起こるんだ
749 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:35:01.71 ID:4xmbllsr.net] >>745 >>726 の実験コードで再現できるよ。 デッドロックのメカニズムはこう。 まず a.php でファイルを開き、ロックする。 そして system で b.php を開く(別に PHP である必要は無い)。 この段階で b.php は、a.php が開いていたファイルの fd(ファイルディスクリプタ)の複製を継承する。 b.php は継承した fd とは別に自前でファイルを開き、ロックしようとする。 ロック済みのファイルに対してロックしようとするから、これはブロックする。 この間 a.php は処理が進み、fclose が走る(*1)。 プログラマーの意図としてはここでロックも自動的に解放されると思っているが、このロックを共有する fd を b.php が閉じずに持っているので、まだロックは解放されない。 a.php は終了するがロックは解放されないので、b.php のブロックが解けることも無くデッドロックする。 このスクリプトをデッドロックさせずに走らせるためには、*1 の前に LOCK_UN するのが一案(PHP においては唯一の手段)。 これにより b.php は継承した fd を開かれたまま持ってはいるが(ある種のリソースリーク状態)、ロックは a.php により解放されるので、b.php が自分で開いた fd に対するロックを取得でき、処理が進行する。 もう一案は、PHP では実現不能だと思うけど、b.php が走り出した直後に継承した fd を閉じること。 PHP からは継承した fd の存在が見えないし、fd を知ることができたところで何もできないから詰むけど、fd を操作できる処理系ではそれが可能だし、むしろ常套手段。 ようは、何かのファイルをロックしたまま子プロセスを立ち上げ、その子プロセスが同じファイルのロックを取得しようとするかなり限定されたケースでは LOCK_UN が必要。
750 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:43:46.46 ID:4xmbllsr.net] ついでにもう少し、>>746 のようなケースであれば、5.3.2 よりも前のように flose で LOCK_UN してくれりゃいいじゃんと思うかもしれない。 多分 PHP の設計者もそう思って、そうしていたんだろう。 でも pcntl_fork なんてことができるようになると、それじゃ問題が出るケースにぶち当たる。 通常 fork してもやっぱり親が持っていた fd は子プロセスに継承されるし、pcntl_fork に関して言えば継承された fd はファイルハンドルの形で PHP から操作できる状態で見えている。 通常マルチプロセスの処理は、親が持っていた fd はじめいろいろなものを継承してしまうので、子にとって不要なものを閉じてしまうというのが最初にやること。 親がロックを取得した fd をそのまま親と子で共有するなんてことはめったに無いから、親なり子なりでその fd を閉じる処理を書くことになる。 この時 LOCK_UN が自動的に走るようになっていると、そのロックを必要としている方のプロセスが持つロックまで解放され、非常に具合が悪い。 だから fclose で勝手に LOCK_UN するなんてのは余計なお世話以外の何物でもない。 というわけで、fclose で LOCK_UN しないようになったと、こういうことだよ。
751 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:49:34.59 ID:4xmbllsr.net] >>747 > 親がロックを取得した fd をそのまま親と子で共有するなんてことはめったに無いから、親なり子なりでその fd を閉じる処理を書くことになる。 ちょっと誤解を招くかもしれないから捕捉。 親がロックを取得した fd をそのまま親と子で共有するなんてことはめったに無いから、 その fd はどちらか一方にとっては不要であるから、そちらのプロセスでは最初にその fd を閉じる処理を書く。
752 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 19:58:20.79 ID:p2hTIoUv.net] >>745 プロセスが生きている間においては「ロック残り」が発生するが、どうせ死ぬから問題ないというスタンスだとすれば、 max_execution_timeを0にした場合や、(初期値が0である)CLIの場合は生き続けるよ。
753 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 20:37:09.64 ID:SRdEl8UG.net] HTMLとは ハイパー テキストマークアップ ラングアゲ
754 名前:デフォルトの名無しさん mailto:sage [2016/06/12(日) 21:40:22.72 ID:ETS5lku+.net] ランゲージ
755 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 09:32:27.21 ID:Mgx0zrpD.net] 今phpをステップ実行できるデバッガで便利なのってどのあたり? ステップごとにそれぞれの変数の中身がどうなってるか簡単にわかるとうれしい
756 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 13:49:19.06 ID:XIduanRK.net] array_filterで関数に他の引数も与えたい場合はどうしたらいいですか?
757 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 14:23:37.32 ID:TYgkMCrQ.net] >>753 コールバックにオブジェクトメソッドを指定して、オブジェクトに他のパラメータを持たせるとか?
758 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 14:36:57.48 ID:TYgkMCrQ.net] あんまやったことないけど、クロージャでやる方が簡単なのかね? function my_array_filter(array $input, $param) { return array_filter( $input, function($var) use($param) { return $var <= $param; } ); } $a=array(1,2,3,4,5); print_r(my_array_filter($a, 2)); print_r(my_array_filter($a, 4)); <実行結果> Array ( [0] => 1 [1] => 2 ) Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
759 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 15:15:41.61 ID:XIduanRK.net] >>755 phpもクロージャ出来るようになってたんですね ありがとうございます
760 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 16:04:29.44 ID:poUAr+t+.net] Array→アレイ→アレ?→あれれ? という発想が頭から離れなくて頭が基地外になりそうなんだけどプログラミングは向いてないよね? ちなみに仕事はPG全く関係なくて異業種の作業員
761 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 18:18:38.79 ID:Mj2HqjrQ.net] おでかけですか〜?
762 名前:デフォルトの名無しさん mailto:sage [2016/06/13(月) 18:53:18.04 ID:I48wzFwG.net] おまえら、平和でいいな。
763 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 00:37:10.95 ID:e/1BDrQk.net] >>757 電気屋さんとか電波屋さんと仲良くなれそう
764 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 02:04:02.36 ID:vpCPShaK.net] 配列をオブジェクト指向的に使うための組み込みクラスは何故ないのでしょうか?
765 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 03:26:27.75 ID:E92ohJVI.net] ないんですか?
766 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 03:29:28.98 ID:sdXnBDtj.net] >>761 当初はあまりオブジェクト指向じゃなかったという点と、 現状の array をそのままオブジェクトとして見なす変更をしてしまうと array を関数の引数に取る場合に他のオブジェクトの扱い(array はコピー渡し、オブジェクトは参照渡し)と一貫性が取れなくなるから、今更どうにもできないってところじゃね。 それより、関数が返す array を直接添え字でアクセスできないのをなんとかして欲しい。 ようは explode(',', $str)[1] みたいにやりたいわけだが、この改修ならほとんど問題無くできそうな気がするけどな。
767 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 03:34:56.83 ID:pjhL6UK+.net] list(,$test)=explode(',', 'test1,test2,test3'); こうするのがせいぜいだが、これで妥協するか自分自身が開発に参加して改修するかだな
768 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 03:48:41.99 ID:E92ohJVI.net] できないんですか?
769 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 05:18:59.07 ID:jLlAbvBE.net] ArrayObjectとArrayIteratorならあるぞ
770 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 09:39:15.99 ID:1o9WExv+.net] >>761 実装済みの>>766 に加えて自前クラスでもArrayAccessインターフェイスを実装すれば配列のように扱えるクラスを実装出来る
771 名前:デフォルトの名無しさん mailto:sega [2016/06/14(火) 10:25:21.42 ID:ekIyBZy6.net] PHPStorm を優勝期限切れで使い続けてる人います? バージョンアップできなくてつらくない?
772 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 11:58:51.69 ID:vpCPShaK.net] ありがとうございます ArrayObjectってあったんですね 探し方が足りなかったようです やはり関数言語的な書き方をしようと思うと、生配列だと物足りなくなってきますね ただArrayObjectも、関数言語的なメソッドは実装されてないようです eachやmapやreduceなど 既にそういうの書いてる人はいるでしょうけど、 標準実装してほしいところです
773 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 12:23:57.32 ID:nAMCA7y/.net] >>763 explode(',', $str)[1] については いつまでも古いバージョンのPHPつかってんじゃねーよってことだが。
774 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 17:44:21.80 ID:vpCPShaK.net] class ArrayObjectEx extends ArrayObject { public function map($func){ foreach ($this as $key => $value){ $this[$key] = $func($value,$key); } return $this; } } とりあえずmapを作ろうと上みたいな感じにしたのですが インスタンスのmapを呼び出すとundefined functionと言われます 親クラスにないメソッドを追加することは出来ないのでしょうか? だとしたらそんな制限は意味が不明すぎますが・・
775 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 19:05:12.07 ID:4d00OzM8.net] 検証すんのめんどくさいから全部コード乗っけてくれる?ハゲ
776 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 19:26:39.01 ID:E92ohJVI.net] mapに何を渡したんですか?
777 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 21:39:45.32 ID:vpCPShaK.net] 失礼しました あまりの非PHPっぽさに釣られて $a.hoge(); みたいな書き方をしていました
778 名前:デフォルトの名無しさん mailto:sage [2016/06/14(火) 23:57:10.36 ID:sdXnBDtj.net] >>770 あれ本当だ いつの間にこうなった
779 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 00:30:10.47 ID:yBESscco.net] >>775 5.4からだから既に4年以上前
780 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 01:15:30.82 ID:/9sc4puR.net] explodeの戻り値がfalseだったら文字列でもfalseでもない null が返ってくることになるよな、それ noticeも出る
781 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 02:58:03.10 ID:6YnDO2OY.net] そうですね
782 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 09:56:12.92 ID:35n6X8km.net] >>776 ずっとそれ出来ないもんだと思ってた...
783 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 10:18:18.00 ID:HJSiSv4s.net] 猿は勉強しないから知らなくても無理はない。気にすんな。
784 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 11:45:48.59 ID:DNtAqMfa.net] わかった。 もう気にしない。
785 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 12:28:52.64 ID:63gxNX9v.net] マイナーバージョンアップで使えるようになった書き方は互換性の面で正直使いづらいな。 使いやすくなることは喜ばしいが。
786 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 14:10:09.61 ID:i5XubNZf.net] 自分の書いたコードが PHPのどのバージョンから使えるコードなのかを判定する ツール的なものはないのでしょうか?
787 名前:デフォルトの名無しさん mailto:sage [2016/06/15(水) 14:13:56.64 ID:x+vvrMaZ.net] 言い出しっぺが作るのです
788 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 03:33:03.54 ID:F+lw57im.net] readdirでディレクトリエントリを読んでいきながら 便宜ファイルを削除しても問題ないのでしょうか?
789 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 11:12:05.38 ID:F+lw57im.net] stackoverflow.com/questions/13507721/how-to-delete-a-file-from-folder-in-php ここを見ると問題ないようです foreachで元の配列を破壊的に変化させてるようなものだと思うのですが どういうアルゴリズムなのか。 一旦全てエントリを舐めて、一つ一つ取り出してるだけなのでしょうか scandirではなくreaddirを使うのはメモリを節約したいという意識からですが 一度に全部読んで単に取り出しを一つ一つしているだけなら あんまり意味がないですね
790 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 11:51:44.03 ID:OOtzbp5n.net] >>785 問題が出るかは確認してないけど、 問題が出るかもしれないから readdir のループでは対象ファイルのリストアップだけして、改めて処理用のループ回してる。
791 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:13:15.23 ID:rO3o63UR.net] 配列の操作について質問です。 MySQLから点数データを取得してwhile文で配列に格納するとともに、 点数の5段階の相対評価を得たいです。 学生(要素数が可変)の点数配列scoresがあるとした場合、点数の高い順に 最初の1/5をA、次の1/5をB、次の1/5をC、次の1/5をD、残りをEに分類するには どういう操作をするのが定石でしょうか?
792 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:14:35.80 ID:rO3o63UR.net] (続き) やりたいことは点数出力時に、「相対的」に5段階評価してランク付けも出力したいのです。 絶対評価なら80点以上はA、60点以上はB・・・など基本的なif文の分岐で可能ですが、 相対評価の場合に、定石的な方法や、便利な関数などはあるのでしょうか? いったん点数を配列に格納後に、配列をコピーしてソートして5つに分類するとか考えているのですが、 もっといいアルゴリズムや便利な関数などありますか? よろしくお願いします。 配列の中身(MySQLからwhile文で取得) scores[1] = 19; scores[2] = 82; scores[3] = 37; ... scores[488] = 11; scores[489] = 55;
793 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:20:11.03 ID:lOAG9aOi.net] >>788 ここはphpの下質スレですがご質問はphpに関する質問ですか?
794 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:25:56.10 ID:rO3o63UR.net] >>790 はい。 PHPでのアルゴリズムの実装方法やそのためのPHPの関数などを教えて欲しいです。
795 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:32:21.65 ID:F+lw57im.net] >>787 それが安心ですね ありがとうございます
796 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 15:40:54.97 ID:lOAG9aOi.net] >>791 まあ…ほんとにphpなら 単純に1次元配列を並び替えるだけならrsort($scores);するかその前にsqlの時点でORDER BYすればいい あとは$scores = array_chunk( $scores, (int)(ceil(count($scores)/5)) );とかすればいい データが二次元だとか細かい処理したいとかならrsort()ではなくusort()も使える
797 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 16:28:58.79 ID:rO3o63UR.net] >>793 ありがとうございます。 配列操作の関数がたくさんあってどれが最適なのか見つけられずにいました。 ORDER BYとご教示頂きましたarray_chunkの関数の組み合わせが最適そうですね。 解決できそうです。ありがとうございました。
798 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 16:49:55.80 ID:BCCkDo9p.net] 学生数が5できっちり割れる時は良いけど そうならない時はどうするのかな?
799 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 17:36:01.49 ID:rO3o63UR.net] >>795 ご注意ありがとうございます。 array_chunk には、次の記述がありますが、仕様上問題ないです。 「最後の部分の要素数は size より小さくなることもあります」 php.net/manual/ja/function.array-chunk.php
800 名前:デフォルトの名無しさん [2016/06/16(木) 21:36:32.86 ID:geCt37Iz.net] 質問させていただきます。 Class内でメンバ関数で定義した変数を別のメンバ関数から参照するにはどうすれば良いのでしょうか?
801 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 22:26:42.88 ID:S7gZdFkC.net] >>797 何がしたいか分からんからやりたいことのコード例
802 名前:デフォルトの名無しさん [2016/06/16(木) 22:30:00.80 ID:geCt37Iz.net] >>798 あ、ごめんなさい class { public function a() { $x = 'hello,world'; } public function b() { print $x; //hello,worldを表示する } } 簡潔にかけばこんな感じです。 aメソッドで定義した変数をbでも使いたいです
803 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 23:17:55.32 ID:S7gZdFkC.net] >>799 クラスのプロパティにしたらあかんのか?
804 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 23:23:33.51 ID:OOtzbp5n.net] クラス内の特定の機能だけでしか使わない変数の扱いについては悩ましいこともあるな。 スコープを厳格にしたいならその機能を別のクラスとして切り出すか、そこまで小分けしたくないなら大人しくプロパティにしてしまうか。 JAVAなんかだとクラス内クラスが簡単に扱えてこういうのに便利なんだけど、PHPってどうなんだっけ。
805 名前:デフォルトの名無しさん [2016/06/16(木) 23:23:34.81 ID:geCt37Iz.net] >>800 まあそれでもいいっちゃいいんですけど ちょっとコードが長くなった時とか、別々にして処理させたいんですよね 皆さんがクラス書くときってどうやってるんでしょうか
806 名前:デフォルトの名無しさん mailto:sage [2016/06/16(木) 23:30:35.19 ID:S7gZdFkC.net] >>802 そもそも担当処理が違うなら別クラスにして委譲するのが適切だとは思う
807 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 00:04:23.57 ID:OWOb/yaE.net] public function a() { static $x = 'hello,world'; } これでは要求を満たさないならばおとなしく関数ではなくclassの変数やclass定数にすべき
808 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:04:47.60 ID:bXZXch1T.net] >>804 質問を読んでなんでそんなコードが出てくるのか意味解らん
809 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 01:24:40.23 ID:VvmzJV5D.net] 配列から数をキーとして持つ要素だけを取り出す いい方法はありませんか?
810 名前:デフォルトの名無しさん [2016/06/17(金) 02:24:59.62 ID:Ub5TQFWS.net] PHPの本で分かりやすいのある?
811 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 07:28:42.66 ID:yged7CRH.net] >>807 皆さんはどんなosでどんなツールでphpやっているの? 教えて
812 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 07:38:35.18 ID:kypwTnD/.net] 机の上でノートに鉛筆でコードを書きながら脳内デバッグして脳内リリース。
813 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 07:55:00.51 ID:zTp2v+lf.net] >>809 奇遇ですな。 同じくアイデア段階では、パソコンでやらずに紙です。 すぐにフローやイメージ図を書き留められる。放射状に広げていける。 紙とエンピツがその時だけ本当に便利だよね。
814 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 08:36:09.46 ID:CYdk5Mt/.net] シーケンス図は手書きの方が楽、人に見せるときは格好つけてVisioで整形するがな
815 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 10:05:23.41 ID:izLNj4Mm.net] >>807 山田祥寛(よしひろ)、翔泳社 10日でおぼえる PHP 入門教室、第4版、2012 この本は、Webアプリ作成の流れがわかるけど、 文法の説明は、あまりない
816 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 10:10:12.64 ID:zTp2v+lf.net] >>812 その人の本地雷だろ。 初心者の時にPEARの本買ったら、意味がわからなくなって挫折しかかった。 別の本で救済された。文法云々の前にとにかく、理屈をこねすぎて本質部分全然わかりにくい。
817 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 10:56:59.01 ID:izLNj4Mm.net] 山田祥寛は第一人者。 様々な言語の本を書いている。RoRでも有名 講習会も1日4万円!
818 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 11:50:18.31 ID:1vjuVThu.net] >>806 array_filter() で ARRAY_FILTER_USE_KEY フラグを使ってフィルタリングする。 あるいは、foreach で順に走査して該当するものだけ取得する。
819 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 13:12:30.73 ID:VvmzJV5D.net] >>815 ARRAY_FILTER_USE_KEYというのは初耳でしたが、 借りたVPSに入ってるのは5.4なので、まだ使えませんでした おとなしくforeachします ありがとうございました
820 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:07:38.77 ID:AeewtahV.net] ユーザーアイコンの取得方法について質問です。 現在ユーザーアイコンの保存にてaws s3(フレームはlaravel)を利用しています。 疑問なのはアイコンの存在チェックをするべきかどうかです。 (アイコン名はユーザーのid名です) 以下のようにすると、存在チェックと取得の計2回のリクエストが発生してしまいます。 @if (Storage::exists('user-icons/' . $user->id . '.jpg')) <img src=&quo
821 名前:t;{{ Storage::url('user-icons/' . $user->id . '.jpg') }}"> @else <img src="{{ Storage::url('user-icons/default.jpg') }}"> @endif そのため単純にユーザーが会員登録した時点でデフォルト画像をユーザーアイコンとして保存し 以下のようにただ取得するというシステムにしようか迷っています。 <img src="{{ Storage::url('user-icons/' . $user->id . '.jpg') }}"> (アイコンを変えないかぎり、ストレージ上ではデフォルト画像があふれるような感じ) アイコンを設定するようなサービスは、どのような構造になっているのでしょう? [] [ここ壊れてます]
822 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:09:49.84 ID:KYjoOhmA.net] >>817 データベースは使わないの?
823 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:40:23.10 ID:AeewtahV.net] >>818 アイコン変更履歴を格納するという意味でしょうか?
824 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:56:34.53 ID:KYjoOhmA.net] >>819 履歴が必要なら履歴も登録してもいいけど。 例えば、user.iconに画像ファイル名が入ってるなら、 select cese when user.icon is null then 'default.jpg' else user.icon end as user_icon 画像ファイル名じゃなくて、あり/なしでもいいし、フルパスにしてもいいし、 userとは別テーブルにしてもいいし。
825 名前:デフォルトの名無しさん mailto:sage [2016/06/17(金) 16:58:19.35 ID:KYjoOhmA.net] っていうか、 > 以下のようにすると、存在チェックと取得の計2回のリクエストが発生してしまいます。 これほんと? $user->idってインスタンスのプロパティアクセスじゃないの?
826 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 00:14:26.11 ID:SEe9xJ4I.net] >>817 ファイルを保存したことが確定していればそれでいいというのであればそのステータスをローカルのDBなんかに保存する アクセス時点でクライアントに画像が見えることを担保したいのであればクライアントサイドでやるべきではないか
827 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 00:48:21.29 ID:W3J+GEBP.net] >>821 の > これほんと? しかまともなレスがない
828 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 03:06:39.83 ID:zkudPs4r.net] >>823 つかそいつ一人しかレス付けてないじゃん。 >>817 S3 は高性能なストレージで存在チェック程度のアクセスは気にするような話ではないんじゃない? ただアイコンを表示する全ての個所でそのコードを書くのはだるいから、デフォルトアイコンを作ってしまうというのもアリだと思う。 ただそうすると、例えばアイコンを設定してないユーザー 10人を一覧表示する場合、 存在チェック式なら同一の画像URL 10個が並ぶからクライアントは結果的に 1回の画像取得しかしないのに対し、 デフォルトアイコンコピー式では画像は個別の 10 の URL になるからクライアントは 10回画像取得をすることになり、 存在チェックなどの些細な負荷より重い実際の画像アクセスが増えてしまう。
829 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 08:33:50.00 ID:8GpUPXrh.net] >>817 ファイルリストをキャッシュしておいて ファイルが変更された(画像ファイルの追加や削除)タイミングで キャッシュをInvalidateすればいいんでないかい?
830 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 08:42:32.00 ID:saT7WdS7.net] default.jpgくらいは手元(ローカルサーバー)に置いておきたいというのはあるわな その場合はlocal://default.jpgとかs3-icon://xxxx.yyyみたいな独自書式を用意するかな
831 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 13:57:43.89 ID:a+CHws3P.net] formと振り分けphpについて質問です。 <form action="furiwake.php"> <input type=submit> <input type=submit> <input type=submit> </form> で、furiwake.phpで$_POSTの内容判定してheader['Location']するのと <form><input type="submit"></form> を何個も書いてそれぞれ別のページに飛ばすのってどっちが良いんですか? ただの趣味の話? それともこうした方が良いとかってありますか?
832 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 14:07:09.69 ID:a+CHws3P.net] 書き忘れ 顧客情報データ持っててhiddenで渡して次画面行きたいだけなのですが 1.全部$_SESSIONに詰め込んで<a href>を何個も作ってそれぞれに飛ばす 2.一つの<form>にsubmitを入れまくって振り分け用phpにhiddenで飛ばす 3.<form>を複数作って顧客情報をそれぞれhiddenで飛ばす $_SESSIONに何でもかんでも詰め込んで良いものか、 それとも振り分け用phpへのアクセスが増える(現実問題は大した事ないけど作り方として)のを避けた方が良いのか というようなことで迷いました。
833 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 16:03:58.68 ID:ue516XaJ.net] 端的に言うと、どれもやらねぇかな。
834 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 16:51:59.61 ID:OFAUAFhz.net] >>827 目的と手段を考えれば答えがでるんじゃない。 データを持って次画面行きたいだけなら$_SESSIONを使うかな。 むしろPOSTする意味がわからない。
835 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 19:19:52.96 ID:a+CHws3P.net] >>829 どんな方法使うんですか? >>830 取り敢えず$_SESSIONに詰め込む事にします
836 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 20:16:44.01 ID:CHIXqkwm.net] 何を参考にしたのか知らないが、普通はそんなやり方はしない
837 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 20:41:31.45 ID:a+CHws3P.net] 普通はどうするんでしょうか
838 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 20:55:18.11 ID:CHIXqkwm.net] 普通は、一つのformに一つのsubmit 処理内容を分けたいなら、 処理の選択をするエレメントを付けてやる
839 名前:デフォルトの名無しさん mailto:sage [2016/06/18(土) 22:59:24.24 ID:pgLfn0h3.net] >>833 自分がしたい処理に似ている有名なサイトのページを分析してみればいい
840 名前:デフォルトの名無しさん mailto:sage [2016/06/19(日) 18:04:14.78 ID:JfyAxJGc.net] nanoappli.com/blog/archives/5448 こちらのサイトで simpleXMLでXMLを組み立てた後 整形するためにDOMDocumentで出力しなおしていますが 最初からDOMDocumentでXMLを組み立てることは出来ないのでしょうか?
841 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 02:38:27.16 ID:tnqQkYkd.net] $xml = simplexml_load_string($str); json_decode(json_encode($xml), true); で得られる形式の配列から xmlに戻す、いい方法はありせんか?
842 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 06:31:07.37 ID:gb8WC3Pe.net] foreachで頑張る
843 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 07:10:53.68 ID:6mpJGPIZ.net] php同士ならserialize/unserializeでいいだろ xmlとかyamlはまああれだ、趣味
844 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 12:29:12.56 ID:tnqQkYkd.net] RSSを配列化→加工→RSSに戻す ということをしたいのです しかしPHPのXML周りはどうもイケてない気がします 簡単なことをするのも煩瑣で、少し突っ込んだ操作も不可能で・・ foreachで頑張るしかないのでしょうか
845 名前:デフォルトの名無しさん [2016/06/20(月) 13:06:06.35 ID:e7qwC/Xx.net] >>840 Rubyでも使いなさい
846 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 13:56:49.12 ID:CH6czl6r.net] Rubyを使ったところで向こうのコミュニティに迷惑掛けるだけだろう どの言語でも共通のDOMすら理解できてないんだから
847 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 14:30:03.12 ID:ppvG3ddJ.net] Groovy なら、クロージャを使って、簡潔に書ける タグ名.each{ 要素 -> 要素.value = 'abc' }
848 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 15:02:05.88 ID:tnqQkYkd.net] 別にPHPが駄目だといっている訳ではありません 実用主義のPHPなのに XMLと配列との相互変換のための関数が用意されていないのっておかしくね? と言っているのです あと値を設定した時に実体参照に変換してくれないところも気が利いてません
849 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 15:30:57.32 ID:tnqQkYkd.net] >>837 あと良く使われてるこの手法もネームスペース属性がそぎ落とされますし・・ イケてないと言わざるを得ません
850 名前:デフォルトの名無しさん [2016/06/20(月) 15:37:59.20 ID:dCVNOi3X.net] 黙れ!小童!!!!! chattykh.com/wp
851 名前:-content/uploads/2016/03/CZezN7LVIAApejO.jpg [] [ここ壊れてます]
852 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 15:43:22.49 ID:CH6czl6r.net] >>844 ,845 配列に型変換して一体何が楽になると思ってるのか知らんけど DOMが嫌だという人のために配列っぽく扱えるSimpleXMLElementが用意されてるだろ ドキュメントも読まずに自分勝手にarray使っておいて気が利かないとか マとして恥ずかしくないの?
853 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 15:46:32.10 ID:kXAYtV38.net] >>847 少なくとも配列とDOMを相互変換とか言ってる時点で正気じゃない 黙ってNGに突っ込んでおくのがよい
854 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 16:19:51.02 ID:tnqQkYkd.net] >>847-848 じゃあXMLのままフィルタリングやソーティングしてみて下さい
855 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 16:21:39.69 ID:o/Q8QvES.net] 入れ子になってる構造でソートだって?
856 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 16:22:31.78 ID:1gK0q/ls.net] >>844 その辺に関してイケてると思う言語はどれ?
857 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 16:26:10.03 ID:1A5wn0fq.net] >>850 兄弟の順序に意味があるXMLだって?
858 名前:デフォルトの名無しさん [2016/06/20(月) 17:55:01.05 ID:o3UTjcQ6.net] セキュリティ関係が頭に全然入ってこないです どうやって勉強すればいいでしょうか
859 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:14:04.86 ID:Iph33/KO.net] >>853 模擬サーバーにハッキングしてみる(実証実験)
860 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 18:43:25.91 ID:6mpJGPIZ.net] 頭に入らないってことは頭の安全性は保障されてるんじゃね、セキュアだな
861 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:42:02.13 ID:DtHt205g.net] みんな頭いいね。おれなんて total=total+1の時点で頭がテンパってるわ
862 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:51:18.58 ID:7UcrPiUv.net] いまでもよく無限ループやらかします(小声)
863 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 19:56:33.91 ID:Ht1YDCGg.net] >>857 ループ変数を $i にするのを卒業しようとしたら $i++ だけ残ってたり
864 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 21:23:50.71 ID:7KDOMThT.net] イテレートで盛り上がれる純朴さが羨ましい限りだ。
865 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 21:28:32.25 ID:7KDOMThT.net] Too young to die, too drunk to live なのかねぇ…
866 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 23:03:57.10 ID:tnqQkYkd.net] >>851 rssの生成は今回はじめてやってるので知りません 他の言語と比較してイケてないと言っているのではなく 単にイケてないと言っているのです
867 名前:デフォルトの名無しさん mailto:sage [2016/06/20(月) 23:07:57.34 ID:vKqEeD2c.net] >>861 プログラミング言語なんだからイケてるライブラリは作り放題だぞ できたら公開してくれ
868 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 07:36:44.50 ID:F8rFyF6H.net] >>861 XML_RSSってメンテされてないんでしょ、これはあれだ、お前がやれという天啓
869 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 13:10:43.41 ID:ZCseRBtp.net] XMLオワコン JSONだけでいいだろもう
870 名前:デフォルトの名無しさん [2016/06/21(火) 14:03:51.86 ID:ZWokyEcu.net] WEB IDEの PhpStorm ておいくらなの? 会社に購入を申請しようとおもうだけど お値段がどこにものっていない
871 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 14:17:29.46 ID:ZCseRBtp.net] https://www.jetbrains.com/phpstorm/buy/#edition=commercial つうかphpstormでググれば3秒でわかるような質問してる人がプログラマーなのに驚愕
872 名前:デフォルトの名無しさん [2016/06/21(火) 15:02:57.47 ID:ZWokyEcu.net] >>866 高!! 199ドルもするの?? phpstormでググったけどその価格のページにたどりつけんかったんよ
873 名前:デフォルトの名無しさん [2016/06/21(火) 15:07:06.24 ID:ZWokyEcu.net] >>866 とりあえず会社に申請してみます。 ありがとう。
874 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 15:20:20.47 ID:ZCseRBtp.net] ブラウザとか環境によるのかもしれんけど自分の場合こんな感じに出る PhpStorm IDE :: JetBrains PhpStorm https://www.jetbrains.com/phpstorm/ このページを訳す The most intelligent PHP IDE with refactorings, code completion, on-the-fly code analysis and coding productivity orientation. Download PhpStorm ・ Buy ・ What's new in PhpStorm 2016.1? ・ Docs & Demos そんでBuyのとこを押すとたどりつけるというわけさ 仕事で使うなら商用ライセンスだろうということでそっち貼ったけど 199ドルは商用ライセンスだから個人の場合は89ドルね https://www.jetbrains.com/phpstorm/buy/#edition=personal
875 名前:デフォルトの名無しさん [2016/06/21(火) 15:32:11.50 ID:GUPYo8em.net] PEARを使うことによってPHPでの開発は劇的に向上する
876 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 16:01:19.29 ID:GdkMnzSr.net] いまさらですか?
877 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 16:07:25.78 ID:JNUr2v78.net] ネストされた配列を再帰を使わずにパースしていく いい方法はありませんか?
878 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 16:53:13.58 ID:PPdTS3ln.net] $199とか、1日の人件費くらいだろ
879 名前:デフォルトの名無しさん [2016/06/21(火) 16:54:36.54 ID:F8qq0CQB.net] >>871 あんたPEARなんて使ってんの?
880 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 16:56:47.93 ID:GdkMnzSr.net] 安価ミスですか?
881 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 17:10:33.70 ID:gufFnXZC.net] これ以上ないくらい美しく書けた //AWS S3上のphotosを削除(データベースはcascadeで対応) $photosId = $user->photos()->lists('photos.id'); if (count($photosId) > 0) { $deletePhotoPaths = []; foreach ($photosId as $value) { $deletePhotoPaths[] = 'photos/' . $value . '.jpg'; } Storage::delete($deletePhotoPaths); }
882 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 17:30:39.61 ID:GdkMnzSr.net] API仕様知らないけどこれだとまずいの? $deletePhotoPaths = []; foreach ($user->photos()->lists('photos.id') as $value) { $deletePhotoPaths[] = 'photos/' . $value . '.jpg'; } Storage::delete($deletePhotoPaths); という些細なものは置いといても、単数形と複数形のポリシーが適当すぎて気持ち悪い。
883 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 18:18:36.43 ID:E96GoXUh.net] >>876 逆にそれより汚く書くとどうなるんだ?
884 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 18:32:23.09 ID:JNUr2v78.net] 正直ごく普通のコードに見えますが・・。 配列はphotosIdListとかにして配列と示した方が良さそうですね
885 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 18:39:20.94 ID:E96GoXUh.net] ID からパスを求める処理は他でも使うから、メソッドなり関数なりに切り出しておくべきだろうね。 array_walk のコールバックに合わせたインタフェースにするといいかもしれないが、それだと単体の変換向けにはちょっと使いづらくなるから、 そこをどう解決するかにセンスを求められるかもな。
886 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 18:44:08.60 ID:E96GoXUh.net] >>880 array_walk じゃなく array_map にすりゃいいのか。 なんかボケてたわ。
887 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 18:53:30.67 ID:Dmco6gBH.net] >>873 フリーや零細ならそういう考え方でいいが、 ある程度の規模になるとそんな甘っちょろい考え方では済まなくなる。
888 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:06:44.71 ID:E96GoXUh.net] >>872 なんで再帰にしたくないの? パースって具体的にどんな処理? もしかして >>837 の人?
889 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:08:30.54 ID:JNUr2v78.net] >>845 の件ですが ネームスペースだけでなく、属性も消えると判明しました ネームスペースや属性もちゃんと表示するコードをしこしこ手書きしたのに 短い方がいいと思って廃棄してからそのことに気付きました ファックですね?
890 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:10:13.56 ID:JNUr2v78.net] >>883 処理が単一的でないので、再帰だとどうもうまくいかないと思ったのです でも再帰でうまく出来そうです ありがとうございました
891 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:11:19.45 ID:Dmco6gBH.net] >>884 一生言ってろ、dumbass
892 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:17:57.37 ID:JNUr2v78.net] >>886 ハゲは黙ってろ
893 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:36:38.54 ID:oaiM5wE7.net] >>884 gitみたいな分散バージョン管理システムつかいなよ こまめにローカルコミットしとけば 戻りたい地点にすぐ戻れる
894 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:39:12.30 ID:Dmco6gBH.net] サルがVCSか。どのように使うか見ものだな。
895 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 20:48:50.16 ID:E96GoXUh.net] >>884 むしろ XML の使い方を simplexml_load_string で扱える範囲に収める方がいいんじゃない? わざわざ XML を使うなんてのは余所とのデータ交換のためなんじゃないかと思うけど、であればなおさら誰でも読めるフォーマットにした方がいいでしょ。 もう仕様が確定して運用中だったらどうにもならないけど。
896 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:24:57.65 ID:JNUr2v78.net] >>884 の件ですが ファイルを別ファイルとして保存 →undoしまくる という方法で復活できました >>888 一応dropboxをバージョン管理に使ってるのですが 今回はちょっとしたテストのつもりでデスクトップで書いていたので・・ ちゃんとした開発ではsubversion使ってます >>890 生成しようとしてるのはpodcast用のRSSなので、 仕様はすでに決まってるのです・・
897 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:34:22.85 ID:3K6j4RYc.net] >>891 dropboxでバージョン管理とな?
898 名前:デフォルトの名無しさん mailto:sage [2016/06/21(火) 22:50:17.70 ID:nLutN5Ez.net] ほんのちょこっとした個人用プログラムくらいなら Dropboxでも十分よ
899 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 05:54:22.15 ID:cac9buRO.net] 素直にGitは難しくて使い方わかりませんって言えばいいのに。
900 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 08:16:06.21 ID:b8o1sKk7.net] >>893 俺もプロジェクトごっそり暗号化zipにして日付つけてdropboxに放り込んでるわ そういう簡単なソフト作った windowsなら標準でonedriveにバージョン単位で保存できるみたいだけど
901 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 09:54:21.10 ID:pXRO6eh+.net] GitとGitHubは別物ですか? SQLとMySQLみたいな。
902 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 10:14:00.80 ID:PtXJngN/.net] gitを使おうとしたら全部のディレクトリに勝手に管理用のファイルが 生成されたからなんか嫌で使ってない 本番用の公開サイトでもgitの管理ファイルがあってもいいものなの?
903 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 10:52:05.69 ID:Aw/Pyhhi.net] 以前はFTPでファイルのアップロードを行なっていて いつのころからかrsyncで同期するようになり 今ではhg push
904 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 11:01:25.47 ID:uyRcysT8.net] 気付けば何もかもが面倒になって直接サーバ入ってviで作業 >SQLとMySQLみたいな うまい
905 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 11:27:29.72 ID:A5e06e5G.net] 全然うまくねえよ、ハゲ
906 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 11:52:44.24 ID:WfMLciR4.net] >>897 git はトップディレクトリにしか作らなくね? エクスプローラーがあちこちに Thumbs.db を作ったりするよりはよほどいいと思うよ。 なんにしてもそんなものを公開サーバに上げるのはマヌケ。 それよりも、個人的にはファイルのタイムスタンプが維持されないのが気に食わない。
907 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 12:24:51.88 ID:OlmvlLQ3.net] >>901 ありがと。参考になります。もう一度やってみるよ。
908 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 12:59:23.09 ID:k28/2S7E.net] >>882 > ある程度の規模になるとそんな甘っちょろい考え方では済まなくなる。 ある程度の規模になれば、それこそ$199なんて誤差になってくるだろ MSDNに比べれば、ゴミのような値段
909 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 13:08:25.26 ID:A5e06e5G.net] >>903 流石、平しかなった事のない奴の発言は重みがあるな。 お前はずっとそう思ってればいいよ。
910 名前:デフォルトの名無しさん [2016/06/22(水) 13:10:35.97 ID:BFfjtylb.net] PEARを使うことで格段に作業効率がUPするのにどうしてみんな使わないの?
911 名前:デフォルトの名無しさん [2016/06/22(水) 13:42:08.67 ID:pXRO6eh+.net] オブジェクト指向でクラス化して作っても 結局はあとあと、再利用、改変、再購読する可能性が低ければ クラス化する意味はあまり無いのですか?
912 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 14:07:44.37 ID:WfMLciR4.net] >>906 変数をクラス内に閉じ込めておけるという点だけでもクラス化の恩恵はあると思う。
913 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 14:33:22.24 ID:k28/2S7E.net] >>904 お前のような奴がいると、ちゃんとした統合環境も使えず、GitHubなんかも使えず、 CI環境とか監視ツールとかもできあいのものが使えないんだろうよ かわいそうだわ
914 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 18:17:18.97 ID:s+FJ5KLI.net] 「添字配列」を英語で何と言いますか?
915 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 18:27:32.70 ID:k28/2S7E.net] >>909 indexed array
916 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 18:55:49.97 ID:cac9buRO.net] >>908 どういう論拠でその結論をだしたんだ? サルの考えることは本当によくわからんな…
917 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 18:58:15.96 ID:cac9buRO.net] >>905 どれもこれも古臭くて不便だから。 他に良い方法がなく、それが最善である場合を除いては使う必要ない。
918 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 19:03:43.32 ID:cac9buRO.net] 先日PEAR::Mailを使ってるプロジェクトのメンテしたが、 たかがメール送るのにあんなクソみたいなライブラリを使うヤツの気が知れない。 そんな奴だから、PEAR::Mailをより不便に糞ラップしてあった。 そうだ、これこそがPHPerの恐ろしいところだ。
919 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 19:03:46.51 ID:s+FJ5KLI.net] >>910 ありがとうございます
920 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 19:05:47.43 ID:cac9buRO.net] >>906 それ、前スレだったか、かなり前に同じこと聞いてなかったか?
921 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 19:13:55.80 ID:cac9buRO.net] 俺が今でも使ってるPEARライブラリというと、Net_GeoIPくらいか… 代替手段が無いのかどうかはしらないが、 昔書いたコードで特に不便はないから放置してあるというのが正しいが。
922 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 19:27:13.26 ID:s+FJ5KLI.net] >>906 オブジェクト指向で書かないと分かりにくいくらい複雑になった時点で オブジェクト指向に移行します 再利用しなくても、その方が理解しやすくなるというメリットがあります
923 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 20:22:05.78 ID:s+FJ5KLI.net] SimpleXMLElementオブジェクトから XML宣言を取得したいのですが、それらしいメソッドがありません asXMLメソッドで全体の文字列を取得して 先頭から切り出せば取得できますが、そんな方法しかないのでしょうか?
924 名前:デフォルトの名無しさん [2016/06/22(水) 20:57:41.64 ID:UX1eBnCv.net] 基礎を身につけました 実践的な力を付けたいので これを作るといいという物を教えてくだたもれ
925 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 21:17:09.01 ID:14AwA6D3.net] >>919 お家カタログ
926 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 21:17:59.56 ID:tA72U/sZ.net] >>919 スマホゲーム
927 名前:デフォルトの名無しさん [2016/06/22(水) 21:52:32.27 ID:6WTwmu+N.net] >>897 それバージョンアップで変わったよ。 リリース時はトップレベルの.gitフォルダを削除してあげればおk
928 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 21:56:30.25 ID:14AwA6D3.net] >>919 話し相手
929 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 22:03:00.47 ID:s1zk4i3O.net] >>919 なにを作るべきかついて話し合うサイト
930 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 22:10:54.83 ID:npVvWban.net] >>922 それだけで本番環境に置き換えられるならすごい便利かも 貴重なアドバイスに感謝です
931 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 22:30:22.51 ID:rpiti0Uo.net] 不要なもんは削除したほういいけど、デプロイはリモートリポジトリからプル。ってやるなら.gitは残さないと。公開ディレクトリ外である事前提だけど。
932 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 22:34:17.61 ID:WfMLciR4.net] >>926 そのやり方は便利なんだけど、PULLしてる最中の中途半端な断面が公開されてる状態になるというのがいただけないよな。
933 名前:デフォルトの名無しさん mailto:sage [2016/06/22(水) 23:01:22.76 ID:rpiti0Uo.net] >>927 そうだね。厳密にやるならプル後にシンボリックリンクでディレクトリ毎切り替えとか。まぁツールで楽しろってこったね。
934 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 10:25:07.43 ID:XHBKYGLc.net] >>911 > サルの考えることは本当によくわからんな… お前の考えることの方がわからんわ $199ごときでがたがた言うのに、>>908 みたいなことはないというのか?
935 名前:デフォルトの名無しさん [2016/06/23(木) 11:02:23.22 ID:Ox92qZ2z.net] 「CakePHP3」の登場でPHPはプログラミング言語の上位に返り咲くことが出来ました! 多謝!!!!!
936 名前:デフォルトの名無しさん [2016/06/23(木) 11:22:16.08 ID:w+1ZvzwV.net] PHPスクリプトを用いて、某英辞書サイトから任意の英単語の語義を抽出してPSS形式(=P-Study-System)にしたいのですが、どなたか方法がわかる方がいたら教えていただけないでしょうか? ●ネット上におちていたPHPのコード : massive.tendon.bz/english/crawl.txt (拡張子をphpに変えて、FC2サーバLiteで使用) ●某辞書サイト: eow.alc.co.jp/$word (検索ワード)/UTF-8/ ●出力ファイル→output.csv 成功版: massive.tendon.bz/english/output_success.csv 失敗版: massive.tendon.bz/english/output_fail.csv ●任意の英単語→wordlist.txt : massive.tendon.bz/english/wordlist.txt 上記のコードを使い、一度は語義の抽出ができたのですが、「Fatal error: Maximum execution time of 30 seconds exceeded in /コードを格納してあるアドレス/crawl.php on line 37」と、表示されて以来、任意の英単語のみ(失敗版output.csv)しか吐かなくなりました。 フリーソフト「PSS=P-Study-System」に読み込んで、英単語学習をしたい……と思ったのですが、使い方がつまずいています。 どなたか解決方法がわかる方がいらっしゃるようでしたら、どうかご教授のほど、お願い致します。
937 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:23:02.34 ID:g0w8fquD.net] >>931 30秒返事がなかったからエラーにするって書いてあるけど そのサイト、て入力でアクセスして返事すぐ返ってくる? 頻繁にアクセスしすぎて制限かけられたとかじゃないの?
938 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:30:52.85 ID:x8Tq2OJc.net] 勘で答えるけど、30秒以上も、色々なサイトを、クロールしていたから、 サーバーエラーになったのだろう エラーの際、プロセスの強制終了により、設定ファイルか何かのリソースに、 途中まで中途半端に書き込まれて、整合性が取れなくなった。 それ以後、そのファイルを読んでも、正しく処理されないとか? まあ、普通の無料アプリで、エラー処理まできっちり書いていることは、まれ。 エラー処理後のテストなども、普通しない 設定ファイルなどをすべて削除して、最初からやり直せば? でも、またサーバーエラーが出れば、同じようになるかも
939 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:52:22.88 ID:aUw7JVj6.net] 失敗版しか吐かない問題とは別に、クローラはCLIで動かしましょう
940 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 12:56:23.30 ID:ISrN3FK4.net] >>932 いやそれはクローラーで、初回に実行しておくかバッチで回すものなんじゃないの。 多分。
941 名前:デフォルトの名無しさん [2016/06/23(木) 14:23:39.57 ID:Ox92qZ2z.net] CakePHPとLaravolどっちがいいかな?
942 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 17:11:28.79 ID:WHuxwDdZ.net] ネストされた配列に、キーの配列を使ってアクセスする関数って PHPにないんですか? $array['a']['b']['c']['d'] のような配列に、配列['a','b','c','d']でアクセスできるようなやつです
943 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 17:33:34.71 ID:WHuxwDdZ.net] $a = 'a'; $b = 'b'; echo $a ? $a : $b; こういう処理で、$aを二度書くのが嫌なのですが いい方法ありませんか?
944 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 17:39:57.01 ID:WHuxwDdZ.net] boolとしての判定を配列の先頭から行っていって trueになった時点でその値を返す という関数があればいいのですが、phpにはないのでしょうか?
945 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:25:23.33 ID:7w307aVI.net] 総合するとおそらく求められているのは php.net/manual/ja/function.array-search.php#91365 みたいなやつだろ、返す値が不満なら自分で改造しなよ
946 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:37:39.57 ID:opomWGEo.net] >>938 エルビス・プレスリーを使う echo $a ?: $b;
947 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:44:33.45 ID:znOgoNn/.net] >>929 おサルさん、よく聞きなさい。 仕事の現場で大切なのはお金だけではありません。 俺様が一度でも金について話しましたか? だからあなたは平しかなった事のない野猿だというのですよ。
948 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:46:27.39 ID:znOgoNn/.net] > >>908 みたいなことはないというのか? あるわけねぇだろ、ハゲ お前は観点がおかしいんだ 保育園からやり直せ
949 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 18:52:22.06 ID:znOgoNn/.net] >>938 PHP7を使う。
950 名前:デフォルトの名無しさん [2016/06/23(木) 18:58:32.34 ID:pXTHavhi.net] 俺様だってよwww
951 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:10:25.79 ID:znOgoNn/.net] 朕と言った方がよかったか?
952 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:12:54.18 ID:ISrN3FK4.net] >>941 おーすげー はじめて知った、こりゃ便利だな
953 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:37:46.60 ID:aUw7JVj6.net] 「こういう処理」のさらに限定的用法でいいならエルビスでも合体でも使えばよろし
954 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:38:09.84 ID:znOgoNn/.net] $hoge = @$_POST["foo"] ?: "bar"; こういうことしなきゃいけなくなるからダメなんだよ。やっぱ7の ?? じゃねぇと。
955 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:40:29.22 ID:WHuxwDdZ.net] >>940 自分でそういう関数を書くのは簡単ですが 標準の機能を使ってやりたいです >>941 エルビス演算子というのですね こんなものがあったとは ありがとうございました
956 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:45:31.19 ID:aUw7JVj6.net] ?: の代わりに ?? を使えと読めてしまうあたり、 偉そうだけど正しい情報を出してくれるタイプの人というわけでもないようだ。
957 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:54:22.07 ID:WHuxwDdZ.net] PHP7では出来るようになってるんですか でもかなりのメリットがあるなら別ですが yumで普通に入るくらいになってないと使いたくはないですね
958 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 19:58:22.33 ID:znOgoNn/.net] この >>951 馬鹿、何言ってるのかよくわかんねぇから、誰か翻訳してくれ。
959 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:00:11.97 ID:znOgoNn/.net] ああ、>>948 に対して >>949 を言ったと思ったのか。サルだな。 投稿時間をよく見てみろよ、マヌケ
960 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:03:47.46 ID:znOgoNn/.net] ID:aUw7JVj6 ← 今日採れたての猿
961 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:04:19.65 ID:aUw7JVj6.net] >>954 え?そういう話じゃないんだけど
962 名前:デフォルトの名無しさん [2016/06/23(木) 20:05:13.04 ID:pXTHavhi.net] サルサルサルサルさるげっちゅ言うてる奴がサルだったというオチ
963 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:09:48.69 ID:znOgoNn/.net] >>954 じゃあなんでどういう話か言わないんだ?おさるさん。
964 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:10:09.01 ID:znOgoNn/.net] アンカー間違えちゃったよ
965 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:12:18.41 ID:znOgoNn/.net] >>929 とか >>956 はマトモに日本語の会話できんのかな?
966 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:13:28.27 ID:aUw7JVj6.net] >>958 それこそ >>948 で書いた。 限定された状況下でしか等価にならないものを、知ってか知らずかそれを言わずに ?: や ?? を使えばいいというレスは 正しい情報とはいえないだけ。
967 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:19:11.19 ID:znOgoNn/.net] >>961 >>938 になんて書いてあるか読めないハゲってことか? 状況が限られてるんだが、PHP7を奨めることになんか問題あんのか? 脳みそないのにお前がハゲになったのは考えすぎたわけじゃなくて遺伝か?
968 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:19:28.62 ID:aUw7JVj6.net] "?: や" は忘れてくれすまん。
969 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:20:22.45 ID:znOgoNn/.net] あと、 > それこそ >>948 で書いた。 > 限定された状況下でしか等価にならないものを、知ってか知らずかそれを言わずに ?: や ?? を使えばいいというレスは > 正しい情報とはいえないだけ。 このクソみたいな日本語は何だ? 中学生でももう少しマシな説明が書けるぞ。
970 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:20:51.96 ID:aUw7JVj6.net] >>962 確認させて。 >>938 の状況に対して PHP7 を使い、そして ?? を使えばいいというレスをしたってことでいいの?
971 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:22:53.99 ID:znOgoNn/.net] > "?: や" は忘れてくれすまん。 こいつ何言ってんだ? ?: の場合、$aが設定されていなければNotice吐くんだぞ? だから >>949 で説明してやったのに。 ここはサル山動物園か?
972 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:23:42.18 ID:znOgoNn/.net] >>965 他に読めるならどう読むか逆に教えてくれ。
973 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:26:01.78 ID:aUw7JVj6.net] ありがと。 $a = '0'
974 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:27:10.81 ID:znOgoNn/.net] >ありがと。 >$a = '0' それがなんの問題があるんだ? 説明してみろよ。
975 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:28:40.89 ID:aUw7JVj6.net] 試せばわかるでしょ
976 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:28:51.68 ID:znOgoNn/.net] $a = '0' $b = 'hoge' $a = $a ?? $b; この場合に$aに入って欲しい値を何だと思ってるんだ?
977 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:29:24.06 ID:znOgoNn/.net] >>970 その言葉、そのまま返すから、何が入って欲しいか言ってみろよ。
978 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:30:34.66 ID:aUw7JVj6.net] 等価じゃないことは確かだから、一概に ?? を使えとはいえないよね。
979 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:31:03.07 ID:znOgoNn/.net] ほら、話をはぐらかし始めたw
980 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:31:36.67 ID:znOgoNn/.net] ああ、こいつ、どうやらこの前のシングルクオートエスケープ馬鹿じゃねぇか?
981 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:32:11.22 ID:znOgoNn/.net] 早く何が入って欲しいか答えろよ野猿
982 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:36:14.10 ID:/dY0hFq/.net] 最近変なのが多いな, 「PHPにないんですか?」のID:WHuxwDdZ 「サルと戯れる人」のID:znOgoNn/ ついでにめんどくさいこと分かってるのにわざわざ相手にしちゃうID:aUw7JVj6
983 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:37:40.18 ID:znOgoNn/.net] >>973 「私は“何が入って欲しいか答えろ”と言いました。 するとどうでしょう? 彼は何もしゃべらなくなりました。 あなたは自分の答えに自信があったんですよねぇ。 あなたは猿じゃないんですよねぇ。ID:aUw7JVj6さん」 https://www.youtube.com/watch?v=wVFNAAHccqA
984 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:38:47.51 ID:znOgoNn/.net] >>977 この状況で単発で ID:aUw7JVj6 擁護って、随分肝っ玉の大きいこって。
985 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:39:39.42 ID:znOgoNn/.net] >最近変なのが多いな, PHPerって本当に自己紹介が得意だよな。尊敬するわ。
986 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:39:50.55 ID:aUw7JVj6.net] >>978 何が入ってほしいかは質問者しか知らんよ。 で、あなたは挙動の異なる演算子を提示した。 それだけの話。
987 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:41:05.93 ID:znOgoNn/.net] >968 : デフォルトの名無しさん2016/06/23(木) 20:26:01.78 ID:aUw7JVj6 >ありがと。 > >$a = '0' 言った後自分で試してみてびっくり m9(^Д^)プギャーーーッ
988 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:41:49.13 ID:znOgoNn/.net] >>981 ほら、更に話をはぐらかし始めたww
989 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:43:04.83 ID:znOgoNn/.net] これが、これこそがPHPerなのです。皆さん、どうぞ ID:aUw7JVj6 を宜しく。 >ありがと。 >ありがと。 >ありがと。 >ありがと。 >ありがと。 >$a = '0'
990 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:45:15.70 ID:znOgoNn/.net] >何が入ってほしいかは質問者しか知らんよ。 >で、あなたは挙動の異なる演算子を提示した。 望む挙動がお前にはわからないのに、なんで異なるって分かるの? おさるさん >それだけの話。 どれな話なの? ちゃんと説明してくれる?
991 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 20:46:11.95 ID:znOgoNn/.net] >ありがと。 >ありがと。 >ありがと。 >ありがと。 >ありがと。 >$a = '0' アホすぎる! アホがすぎるぞ! ID:aUw7JVj6 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
992 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 21:03:01.96 ID:8l+T8FXA.net] 次スレ立てます
993 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 21:06:15.49 ID:/dY0hFq/.net] >>987 頼んます 前も言ったけどテンプレ古臭過ぎるので要検討
994 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 21:06:46.23 ID:aUw7JVj6.net] ワッチョイつきが立ってるよ 【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net echo.2ch.net/test/read.cgi/tech/1462971286/
995 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 21:09:32.67 ID:8l+T8FXA.net] 次スレ echo.2ch.net/test/read.cgi/tech/1466683550/
996 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 21:11:23.06 ID:8l+T8FXA.net] 立ててしまった・・・ どちらを使うかはおまかせします
997 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 21:17:37.65 ID:/dY0hFq/.net] あー, 重複スレがあったのか。 すっかり忘れてた, すまんな
998 名前:デフォルトの名無しさん [2016/06/23(木) 21:47:29.07 ID:pXTHavhi.net] こんな過疎スレに一日30回近く書き込みする物好きがいると聞いて見物している
999 名前:デフォルトの名無しさん [2016/06/23(木) 22:09:04.47 ID:pXTHavhi.net] さっさと埋めろや無能ども
1000 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 22:12:48.63 ID:WHuxwDdZ.net] issetを使っているところをエルビス演算子に置き換えてみたのですが @でエラー出力を抑制しても、 エラーハンドラをセットしている時にはしっかり呼び出されてますね・・ エラー出力を抑制しないといけないところに使うのは、 あまり筋のいい書き方ではないですね
1001 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 22:29:59.73 ID:ISrN3FK4.net] ?: は便利な書き方だけど $a を boolean として評価した結果と選択したい方が一致しない場合には使いづらいな。 $a が文字列だとして空の時に特別な表示をしようと echo $a ?: '未設定'; なんてやった場合、$a が '0' だったりすると意図から外れちゃうもんな。 便利な書き方なんだけど惜しい。
1002 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 22:39:41.33 ID:BeTIQhqe.net] ?:は、@$foo にしないとやってられない…
1003 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 22:44:17.42 ID:ISrN3FK4.net] @ もまた使いづらい。 特に変数が配列だったりすると、内部的には配列のコピーが作られてパフォーマンスに影響があるんだよね。 @$_POST['foo'] の場合にこのキーが無ければ、$_POST がコピーされ foo に対応する値が null な配列を作り出し、式としては null を返し、作った配列は捨てちゃうと。 なんでこんな実装になってるんだろ。
1004 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 23:01:44.89 ID:/dY0hFq/.net] そもエラー抑制演算子なんて相当の理由がなければ使うべきじゃないし 楽したいならそういう機能のある新しいバージョン使う方が絶対に正しい 新しいバージョンが使えない, 使いたくないというのであれば, 楽をするのはあきらめて素直にissetで定義済みか確認せねばならん
1005 名前:デフォルトの名無しさん mailto:sage [2016/06/23(木) 23:08:30.51 ID:ISrN3FK4.net] >>999 まあな。 ただ、配列に関して言えば array_key_exists より isset の方がパフォーマンスがいいというのは微妙に納得いかないw いや isset の方が楽で助かるけどさ。
1006 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。 life time: 43日 1時間 21分 40秒
1007 名前:1002 [Over 1000 Thread.net] 2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 2ちゃんねる専用ブラウザからの広告除去 ★ 2ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ premium.2ch.net/ pink-chan-store.myshopify.com/
1008 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています