[表示 : 全て 最新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分以内に立たない場合、宣言してから立てたい人が立てること。

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
デッドロックなんて気にしてるってことがおまえがアホみたいな事やってる証拠なんだぬー
俺様はそんなしんぱいしなくてもいいようにシステムを作るので全く無縁の話なんだぬー






[ 続きを読む ] / [ 携帯版 ]

前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