[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 12/03 04:20 / Filesize : 272 KB / Number-of Response : 1009
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 5



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

ゴミみたいになっているのは

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 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<272KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef